使用 Python 进行网络端口扫描

2023-04-21 00:00:00 python 网络 端口扫描

”或“localhost”作为目标地址。

首先,需要导入socket模块。

import socket

接下来,定义一个扫描函数,该函数接收一个IP地址和一个端口号作为参数,使用socket模块的connect_ex方法连接指定的IP地址和端口号,如果连接成功,则说明该端口开放,返回True;如果连接失败,则说明该端口关闭或被过滤,返回False。

def scan(ip, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(1)
    result = s.connect_ex((ip, port))
    s.close()
    if result == 0:
        return True
    else:
        return False

使用该函数进行端口扫描时,可以循环调用该函数,传递不同的端口号,判断端口是否开放。

ip = "pidancode.com"
for port in range(1, 10000):
    if scan(ip, port):
        print("Port", port, "is open")

完整代码:

import socket

def scan(ip, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(1)
    result = s.connect_ex((ip, port))
    s.close()
    if result == 0:
        return True
    else:
        return False

ip = "pidancode.com"
for port in range(1, 10000):
    if scan(ip, port):
        print("Port", port, "is open")

相关文章