写一个python代码,扫描设备开放的端口。
时间: 2024-05-07 17:15:59 浏览: 184
以下是一个简单的Python代码,可以扫描指定IP地址的设备开放的端口:
```python
import socket
target = input("Enter the IP address to scan: ")
min_port = int(input("Enter the minimum port number: "))
max_port = int(input("Enter the maximum port number: "))
print("Scanning target", target, "from port", min_port, "to port", max_port)
for port in range(min_port, max_port+1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
if result == 0:
print("Port {} is open".format(port))
sock.close()
```
该代码使用了Python内置的socket库来创建一个TCP连接,然后使用connect_ex()函数来检查端口是否开放。如果端口开放,则输出相应的信息。
相关问题
给我写一个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代码,可以同时扫描多个IP和对应端口
可以使用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地址和端口,可能会导致法律后果。
阅读全文