Python—批量telnet域名和端口以及解析域名

本文介绍了使用Python批量检测100多个域名的端口是否通,并获取IP解析的方法。通过telnetlib和socket库,实现了自动化检查,避免了手动操作的繁琐。对于无法通过telnet连接的域名,使用socket获取IP解析,同时尝试了dnspython模块但发现某些域名解析不成功。最终将结果保存到Excel文件中。
摘要由CSDN通过智能技术生成

最近接到一个需求,要批量解析100多个域名,以及telnet端口是否通。如果一个个用telnet和dig/nslookup,累都累死了,于是考虑用python实现。

这里我的思路是用telnetlib建立对象,试着telnet,通了可直接获取IP解析,不通,则通过socket一个功能获取IP解析。(有人推荐dnspython模块,这个是类似dig的功能,但是实践发现很多域名拿不到解析)

import pandas as pd
import os
import telnetlib
import socket
#读取Excel
df=pd.read_excel('domain.xlsx')
domain_item=df.columns[0]  #域名列
port_item=df.columns[1]    #端口列
result=[]
for i in df.index:
  domain=df.loc[i][domain_item]  #读取域名
  port=int(df.loc[i][port_item]) #读取端口
  tc=telnetlib.Telnet()
  try:
    tc.open(domain,port,1)   #检测telnet端口
  except Exception as e:
    status="不通"
    try:
      IP=socket.getaddrinfo(domain,port)[0][-1][0]  #获取域名解析
    except Exception as e:
      print(e)
      IP='unknown'
  else:
    status="通"
    IP=tc.get_socket().getpeername()[0]  #获取域名解析
    tc.close()
  line=[num,domain,port,status,IP]  #本行的数据
  result.append(line)   #纳入本行数据到result
#生成DataFrame 导出结果excel
df=pd.DataFrame(result,columns=['域名','端口','通否','IP'])
df.to_excel('result.xlsx',index=False)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值