根据服务获取端口号
首先需要下载一个psutil库
然后根据服务名找到PID
找到PID之后,通过pid获取端口号
# -*- encoding=utf8 -*-
import psutil
import re## 标题
import os
def processinfo(x):
 '''根据服务名找到PID'''
 procs = list(psutil.process_iter()) # 获取所有服务列表
 print(procs)
 for r in procs:
 aa = str(r)
 f = re.compile(x,re.I)
 if f.search(aa):
 print (aa.split('pid=')[1].split(',')[0])
 return aa.split('pid=')[1].split(',')[0]
 # print (aa.split('pid='))
def port(x):
 '''通过pid获取端口号'''
 PID = processinfo(x)
 cmd = 'netstat -ano | findstr' + ' '+str(PID)
 print(cmd)
 a = os.popen(cmd)
 # 此时打开的a是一个对象,如果直接打印的话是对象内存地址
 text = a.read()
 # 要用read()方法读取后才是文本对象
 first_line = text.split(':')
 ab = first_line[1]
 cd = ab.split(' ')
 por = cd[0]
 print(por)
 return por
知识点扩展:linux查看端口开启端口
一、查看哪些端口被打开  netstat -anp
二、关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP 
iptables -A OUTPUT -p tcp --dport 端口号-j DROP
三、打开端口号:iptables -A INPUT -ptcp --dport 端口号-j ACCEPT
四、以下是linux打开端口命令的使用方法。
 nc -lp 23 &(打开23端口,即telnet)
  netstat -an | grep 23 (查看是否打开23端口)
五、linux打开端口命令每一个打开的端口,都需要有相应的监听程序才可以
总结
以上所述是小编给大家介绍的Python根据服务获取端口号的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!