1. 程式人生 > 程式設計 >Python根據服務獲取埠號的方法

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根據服務獲取埠號的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!