Issue #10282: Add a `nntp_implementation` attribute to NNTP objects.
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index d5786e2..a09c065 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -354,6 +354,7 @@
 
         # Inquire about capabilities (RFC 3977)
         self.nntp_version = 1
+        self.nntp_implementation = None
         try:
             resp, caps = self.capabilities()
         except NNTPPermanentError:
@@ -365,6 +366,8 @@
                 # The server can advertise several supported versions,
                 # choose the highest.
                 self.nntp_version = max(map(int, caps['VERSION']))
+            if 'IMPLEMENTATION' in caps:
+                self.nntp_implementation = ' '.join(caps['IMPLEMENTATION'])
 
     def getwelcome(self):
         """Get the welcome message from the server
diff --git a/Lib/test/test_nntplib.py b/Lib/test/test_nntplib.py
index f9a4cdc..6380084 100644
--- a/Lib/test/test_nntplib.py
+++ b/Lib/test/test_nntplib.py
@@ -949,6 +949,7 @@
         caps = self.server.getcapabilities()
         self.assertEqual(caps, {})
         self.assertEqual(self.server.nntp_version, 1)
+        self.assertEqual(self.server.nntp_implementation, None)
 
 
 class NNTPv2Tests(NNTPv1v2TestsMixin, MockedNNTPTestsMixin, unittest.TestCase):
@@ -971,6 +972,7 @@
             'READER': [],
             })
         self.assertEqual(self.server.nntp_version, 3)
+        self.assertEqual(self.server.nntp_implementation, 'INN 2.5.1')
 
 
 class MiscTests(unittest.TestCase):