python3 使用正则匹配 IP 并检测端口

我们要通过正则去获取一段信息中与之匹配的内容,需要使用到正则表达式,Python 的 re 模块,要判断端口是否打开则可以使用 socket 模块,具体代码如下:

代码

# import re
#
ticket_info = "服务器怎么无法远程连接了,IP 地址是59.111.104.113,麻烦帮我看下"


import re
import socket

pattern = re.compile(r'((?:(?:25[0-5]|2[0-4]\d|(?:1\d{2}|[1-9]?\d))\.){3}(?:25[0-5]|2[0-4]\d|(?:1\d{2}|[1-9]?\d)))')  # 查找数字

ip_info = pattern.findall(ticket_info)

if ip_info[0] is not None:

    for port in [22,3389,80,443]:
        sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sk.settimeout(1)
        try:
            sk.connect((ip_info[0],port))

            print("Server: %s port %s OK!" %(ip_info[0],port))
        except Exception:
            print("Server: %s port %s OK!" % (ip_info[0], port))
        sk.close()