fengxiaoxiao7 发表于 2023-1-13 13:49

检查远程服务器端口是否开启

# 检查远程服务器端口是否开启
* 检查远程服务器端口是否开启
* 轮询检查远程服务器所有端口是否开启


## 代码
```
import socket
import sys

host = sys.argv
mode = sys.argv

def check_port(host, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(5)
    result = sock.connect_ex((host, port))
    if result == 0:
      print(f"{port} is open")
    else:
      print(f"{port} is not open")
    sock.close()

def check_ports(host, start_port, end_port):
    open_ports = []
    for port in range(start_port, end_port + 1):
      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      sock.settimeout(1)
      result = sock.connect_ex((host, port))
      if result == 0:
            open_ports.append(port)
      sock.close()
    return open_ports

if mode=="all":
    open_ports = check_ports(host, 1, 65535)
    print("Open ports on {}: {}".format(host, open_ports))
else:
    port = int(mode)
    check_port(host, port)
```

## 使用示例
```
python xx.py //指定端口
python xx.py 'all'//轮询所有端口
```

hqt 发表于 2023-1-13 14:55

思路不错
同类软件推荐:nmap

photocs 发表于 2023-1-15 12:38

njbb888 发表于 2023-1-13 16:12
nmap 性能太差了。做个一个项目,扫描全球所有ip的端口,用nmap,那速度不说了。

什么项目呀要扫描全球所有IP的端口?

bbs119 发表于 2023-1-13 14:58

指定多个端口或一段端口怎么弄?

fengxiaoxiao7 发表于 2023-1-13 16:06

bbs119 发表于 2023-1-13 14:58
指定多个端口或一段端口怎么弄?

open_ports = check_ports(host, 1, 65535)

njbb888 发表于 2023-1-13 16:12

hqt 发表于 2023-1-13 14:55
思路不错
同类软件推荐:nmap

nmap 性能太差了。做个一个项目,扫描全球所有ip的端口,用nmap,那速度不说了。

抢师太的秃驴 发表于 2023-1-13 19:10

不错不错,我来学习学习。

whoami233 发表于 2023-1-13 22:24

njbb888 发表于 2023-1-13 16:12
nmap 性能太差了。做个一个项目,扫描全球所有ip的端口,用nmap,那速度不说了。

快速扫描用masscan

apull 发表于 2023-1-14 00:40

学习了,简单扫描一下能用上

njbb888 发表于 2023-1-16 08:56

photocs 发表于 2023-1-15 12:38
什么项目呀要扫描全球所有IP的端口?

工信部的一个项目
页: [1] 2
查看完整版本: 检查远程服务器端口是否开启