给我写一个Python代码,可以同时扫描多个IP和对应端口
时间: 2023-02-09 12:31:51 浏览: 65
可以使用Python内置模块socket来扫描多个IP和对应端口。下面是一个示例代码:
```
import socket
def scan_ports(ip_list, port_list):
open_ports = {}
for ip in ip_list:
for port in port_list:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
result = sock.connect_ex((ip, port))
if result == 0:
open_ports[ip] = open_ports.get(ip, []) + [port]
return open_ports
# 扫描IP列表中的所有IP的端口列表中的所有端口
ip_list = ["192.168.1.1", "192.168.1.2"]
port_list = [22, 80, 443]
open_ports = scan_ports(ip_list, port_list)
print(open_ports)
```
运行这个程序将会输出一个字典,其中键为所扫描的IP地址,值为开放的端口列表。
请注意,如果您扫描未经授权的IP地址和端口,可能会导致法律后果。
相关问题
给我写一个Python代码,可以批量扫描IP和端口
```python
import socket
def scan_ports(ip, start_port, end_port):
for port in range(start_port, end_port+1):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
result = sock.connect_ex((ip, port))
if result == 0:
print(f"{ip}:{port} is open")
sock.close()
except:
print(f"Unable to connect to {ip}:{port}")
scan_ports("IP地址", 起始端口, 结束端口)
```
请替换 IP地址, 起始端口, 结束端口 变量的值为你需要扫描的IP地址和端口范围.
这段代码使用了 Python 的 socket 库, 创建了一个 socket 对象, 并使用 connect_ex() 方法来检查 IP 地址和端口是否可用. 如果连接成功, 就会打印出 IP:Port 是开放的, 如果连接不成功, 会打印出无法连接到 IP:Port.
写一个python多线程可以扫描其他电脑端口的程序
import socket
import threadingdef scan(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2)
try:
status = sock.connect_ex((ip, port))
except:
print('端口扫描失败')
if status == 0:
print('端口',port,'开放')def main():
ip = input('请输入需要扫描的IP地址:')
port_list = [80,443,3389,21,22,25]
threads = []
for port in port_list:
th = threading.Thread(target=scan, args=(ip, port, ))
th.start()
threads.append(th)
for th in threads:
th.join()if __name__ == '__main__':
main()