前言
python里有一个模块,叫socket,提供了BSD socket 的通信接口,gethostbyname 返回的是主机名的IPv4 的地址格式,如果传入的参数是IPv4 的地址格式,则返回值跟参数一样,这个函数不支持IPv6 的域名解析。
实现过程
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from socket import gethostbyname
DOMAIN = "./domain.txt"
with open(DOMAIN,'r') as f:
for line in f.readlines():
try:
host = gethostbyname(line.strip('\n')) #域名反解析得到的IP
except Exception as e:
with open('error.txt','a+') as ERR: #error.txt为没有IP绑定的域名
ERR.write(line.strip()+ '\n')
else:
with open('result.xlsx','a+') as r: # ****.txt 里面存储的是批量解析后的结果
r.write(line.strip('\n') + ' ') #显示有ip绑定的域名,用空格隔开
print(line, host)
r.write(host + '\n')
if host != "192.168.3.2": #筛选特定结果,具体代码实现如下
if host != "192.168.3.3":
with open('result.txt', 'a+') as f:
f.write(line.strip() +' ') #存储筛选后的域名
f.write(host + '\n') #存储筛选后的IP
else:
pass
else:
pass