DNS域名系统
DNS是一个分布式的数据库,主要用于吧主机名转换为IP地址。
例1,获取域名的IP
 
复制代码 代码示例:
#!/usr/bin/
python
import sys, socket   
# 获取域名的IP地址   
result = socket.getaddrinfo(sys.argv[1], None)   
print result[0][4]   
  
result = socket.getaddrinfo(sys.argv[1], None)   
counter = 0  
for item in result:   
    print '%-2d:%s' % (counter, item[4])   
     counter += 1  
import sys, socket# 获取域名的IP地址result = socket.getaddrinfo(sys.argv[1], None)print result[0][4]result = socket.getaddrinfo(sys.argv[1], None)counter = 0for item in result: print '%-2d:%s' % (counter, item[4]) counter += 1
例2,根据IP获取域名
 
复制代码 代码示例:
#!/usr/bin/python
import sys, socket   
  
try:   
    #   根据IP地址得到域名地址   
     result = socket.gethostbyaddr(sys.argv[1])   
    print 'Primary 
hostname:'  
    print ' ' + result[0]   
    # Display the list of available addres
sed that is also returned   
    print 'nAddress:'  
    for item in result[2]:   
        print '   ' + item   
except socket.herror, e:   
    print "Couldn't look up name:", e  
import sys, sockettry: # 根据IP地址得到域名地址 result = socket.gethostbyaddr(sys.argv[1]) print 'Primary hostname:' print ' ' + result[0] # Display the list of available addressed that is also returned print 'nAddress:' for item in result[2]: print ' ' + itemexcept socket.herror, e: print "Couldn't look up name:", e
例3,获取网络环境信息(www.jb200.com)。
 
复制代码 代码示例:
#!/usr/bin/python
import sys, socket   
  
def getipaddrs(hostname):   
     result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM)   
    return [x[4][0] for x in result]   
  
# 获取主机名称   
hostname = socket.gethostname()   
print 'Host name:', hostname   
  
print 'Fully-qualified name:', socket.getfqdn(hostname)   
try:   
    # 打印IP地址   
    print 'IP addressed:', ', '.join(getipaddrs(hostname))   
except socket.gaierror, e:   
    print 'Could not get IP addressed:', e