Python根据服务获取端口号的方法

yipeiwu_com7年前Python基础

根据服务获取端口号

首先需要下载一个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根据服务获取端口号的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python在Windows下安装setuptools(easy_install工具)步骤详解

python在Windows下安装setuptools(easy_install工具)步骤详解

本文讲述了python在Windows下安装setuptools(easy_install工具)的方法。分享给大家供大家参考,具体如下: 【题外话介绍下setuptools】 setup...

python学习之hook钩子的原理和使用

python学习之hook钩子的原理和使用

什么是钩子 之前有转一篇关于回调函数的文章 钩子函数、注册函数、回调函数,他们的概念其实是一样的。 钩子函数,顾名思义,就是把我们自己实现的hook函数在某一时刻挂接到目标挂载点上。...

python实现类之间的方法互相调用

all.py from son import * class ALL(): def __init__(self): self.mSon = SON(self) def get...

win10环境下python3.5安装步骤图文教程

win10环境下python3.5安装步骤图文教程

点我去Python官网下载 往下翻几页就能看到各种版本的Python,当前最新的是Python3.6,也没多大区别,我选择的是3.5.2 64位的,点击download 根据自己的电...

Python编程实现正则删除命令功能

本文实例讲述了Python编程实现正则删除命令功能。分享给大家供大家参考,具体如下: 脚本用途: 在DOS下使用del功能箭头,不支持正则表达式的功能。 脚本实现: import s...