python简单实现ip,cdn,whois,端口查询

记得首先要安装对应的模块。

import requests
import  whois
import socket
import sys
import os
url = "www.xiaodi8.com"
ip = socket.gethostbyname(url) # 获取IP
print(ip)

cdn_data = os.popen('nslookup www.xiaodi8.com') # 判断是否存在CDN
cdn_datas = cdn_data.read()
print(cdn_datas)
c = cdn_datas.count('.')
if c > 10:
    print('存在CDN')

else:
    print('不存在CDN')

data_who = whois.whois('www.xiaodi8.com') # whois 查询
print (data_who)

# 端口扫描
ports = {'21','22','25','80','443','8080','8888','3306'}
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建一个TCP/IP套接字对象
for port in ports:
    data_ip = server.connect_ex((ip,int(port)))
    if data_ip == 0:
        print(ip + ":" + port + "|open")
    else:
        print(ip + ":" + port + "|close")

因为自己也是第一次用这个,所以这里对server.connect_ex方法做一个简单介绍:
server.connect_ex(address)是一个套接字对象的方法,用于尝试与指定的地址进行连接。它与server.connect(address)方法类似,但是不同的是,如果连接成功,它会返回0,如果连接失败,它会返回一个错误码。这个方法通常用于非阻塞的套接字连接操作,可以通过检查返回值来判断连接是否成功。

另外!这个判断CDN的方法一点都不准确(我也不知道这个命令是视频里教的),建议友友们还是用超级ping来判断吧!

下面的是我把其代码封装在函数里了,可以给友友们做个参考。

import requests
import  whois
import socket
import sys
import os

def find_ip(url):   # 查询ip
    ip = socket.gethostbyname(url)
    print(ip)

def whois_ip(url):   # whois查询
    ip_whois = whois.whois(url)
    print(ip_whois)

def ports_find(url): # 端口扫描
    ip = socket.gethostbyname(url)
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    for port in range(1,65536):
        data_ip = server.connect_ex((ip,port))
        if data_ip == 0:
            print(ip + ":" + str(port) + "|open")
        else:
            print(ip + ":" + str(port) + "|close")

url = "www.xiaodi8.com"
find_ip(url)
whois_ip(url)
ports_find(url)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值