diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py
index ea5095a..49f8984 100644
--- a/Lib/BaseHTTPServer.py
+++ b/Lib/BaseHTTPServer.py
@@ -93,19 +93,7 @@
         """Override server_bind to store the server name."""
         SocketServer.TCPServer.server_bind(self)
         host, port = self.socket.getsockname()
-        if not host or host == '0.0.0.0':
-            host = socket.gethostname()
-        try:
-            hostname, hostnames, hostaddrs = socket.gethostbyaddr(host)
-        except socket.error:
-            hostname = host
-        else:
-            if '.' not in hostname:
-                for host in hostnames:
-                    if '.' in host:
-                        hostname = host
-                        break
-        self.server_name = hostname
+        self.server_name = socket.getfqdn(host)
         self.server_port = port
 
 
@@ -418,16 +406,8 @@
 
         """
 
-        (host, port) = self.client_address
-        try:
-            name, names, addresses = socket.gethostbyaddr(host)
-        except socket.error, msg:
-            return host
-        names.insert(0, name)
-        for name in names:
-            if '.' in name: return name
-        return names[0]
-
+        host, port = self.client_address
+        return socket.getfqdn(host)
 
     # Essentially static class variables
 
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index fd9127b..41c3b33 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -41,7 +41,8 @@
 
 # Import SOCKS module if it exists, else standard socket module socket
 try:
-	import SOCKS; socket = SOCKS
+	import SOCKS; socket = SOCKS; del SOCKS # import SOCKS as socket
+	from socket import getfqdn; socket.getfqdn = getfqdn; del getfqdn
 except ImportError:
 	import socket
 
@@ -291,17 +292,8 @@
 		if not passwd: passwd = ''
 		if not acct: acct = ''
 		if user == 'anonymous' and passwd in ('', '-'):
-			thishost = socket.gethostname()
-			# Make sure it is fully qualified
-			if not '.' in thishost:
-				thisaddr = socket.gethostbyname(thishost)
-				firstname, names, unused = \
-					   socket.gethostbyaddr(thisaddr)
-				names.insert(0, firstname)
-				for name in names:
-					if '.' in name:
-						thishost = name
-						break
+			# get fully qualified domain name of local host
+			thishost = socket.getfqdn()
 			try:
 				if os.environ.has_key('LOGNAME'):
 					realuser = os.environ['LOGNAME']
diff --git a/Lib/socket.py b/Lib/socket.py
index 3cc8d91..e5180b5 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -85,7 +85,7 @@
     is returned.
     """
     name = name.strip()
-    if len(name) == 0:
+    if not name or name == '0.0.0.0':
         name = gethostname()
     try:
         hostname, aliases, ipaddrs = gethostbyaddr(name)
