检查的方法就是首先根据ip查找出一个域名。
然后再根据这个域名查找出一个ip列表。
最后检查你所用ip是否再ip列表里面。
#!/usr/bin/env python
#coding:utf-8
#根据ip反查域名,并且检查域名是否正确
import socket, sys
ip = sys.argv[1]
#根据ip地址查找域名
def findyuming(ip):
m = socket.gethostbyaddr(ip)
ym = m[0]
return ym
#根据查找到的域名,得到ip列表
def findiplist(yuming):
l = socket.getaddrinfo(yuming, None)
return [x[4][0] for x in l]
#错误捕捉与处理
try:
y = findyuming(ip)
m = findiplist(y)
except socket.herror, e:
print "No host name available for %s" % ip
sys.exit(0)
except socket.gaierror, e:
print "No host name available for %s" % ip
sys.exit(0)
#检查所得的ip是否是再ip列表里面
if ip not in m:
print "No host name available for %s" % ip
sys.exit(1)
print "validated hostname:", y
执行一下:
[root@slave four]# python two.py 127.0.0.1
validated hostname: localhost
[root@slave four]# python two.py 127.0.0.2
No host name available for 127.0.0.2
转载于:https://blog.51cto.com/zidingyi/1885791