使用Python构建IP scanner,可以通过使用socket模块来实现。以下是一个示例代码,用于扫描给定IP地址范围内的活动主机,并返回一个主机的列表。
import socket
def scan_ip(ip):
try:
# 创建一个套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1) # 设置套接字超时时间
# 尝试连接IP地址的80端口(可以根据需求更改)
result = s.connect_ex((ip, 80))
# 如果返回0,则表示主机的80端口是开放的,即主机是活动的
if result == 0:
return ip
except Exception as e:
pass
finally:
s.close() # 关闭套接字
return None
def ip_scanner(start_ip, end_ip):
active_hosts = []
ip_parts = start_ip.split('.') # 拆分IP地址的各个部分
base_ip = ip_parts[:-1] # IP地址的前三个部分
# 遍历IP范围内的所有地址
for i in range(int(ip_parts[-1]), int(end_ip.split('.')[-1])+1):
ip = '.'.join(base_ip + [str(i)])
active_host = scan_ip(ip)
if active_host:
active_hosts.append(active_host)
break # 返回第一个活动主机的IP地址
return active_hosts
# 输入起始和结束IP地址范围
start_ip = '192.168.1.1'
end_ip = '192.168.1.255'
# 扫描活动主机
active_hosts = ip_scanner(start_ip, end_ip)
print(active_hosts)
以上代码使用socket模块创建套接字,并尝试连接给定IP地址的80端口。如果连接成功,则表示主机是活动的,将该IP地址添加到活动主机列表中。最后,返回一个主机的列表。请注意,代码中的超时时间可以根据需要进行调整。
这个IP scanner的应用场景包括网络管理、系统管理、安全测试等领域。对于推荐的腾讯云相关产品,可以考虑使用腾讯云的云服务器(CVM)来托管和运行Python代码。您可以参考腾讯云云服务器的产品介绍和文档:腾讯云云服务器。
领取专属 10元无门槛券
手把手带您无忧上云