Python根據(jù)服務(wù)獲取端口號的方法
根據(jù)服務(wù)獲取端口號
首先需要下載一個psutil庫
然后根據(jù)服務(wù)名找到PID
找到PID之后,通過pid獲取端口號
# -*- encoding=utf8 -*- import psutil import re## 標(biāo)題 import os def processinfo(x): '''根據(jù)服務(wù)名找到PID''' procs = list(psutil.process_iter()) # 獲取所有服務(wù)列表 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是一個對象,如果直接打印的話是對象內(nèi)存地址 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
二、關(guān)閉端口號: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打開端口命令每一個打開的端口,都需要有相應(yīng)的監(jiān)聽程序才可以
總結(jié)
以上所述是小編給大家介紹的Python根據(jù)服務(wù)獲取端口號的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解django實現(xiàn)自定義manage命令的擴展
這篇文章主要介紹了django實現(xiàn)自定義manage命令的擴展,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08基于Python的socket庫實現(xiàn)通信功能的示例代碼
本文主要給大家介紹了如何使用python的socket庫實現(xiàn)通信功能,這里簡單的給每個客戶端增加一個不重復(fù)的uid,客戶端之間可以根據(jù)這個uid選擇進(jìn)行廣播通信,感興趣的小伙伴快來看看吧2023-08-08Django配置MySQL數(shù)據(jù)庫的完整步驟
這篇文章主要給大家介紹了關(guān)于Django配置MySQL數(shù)據(jù)庫的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09新版Pycharm顯示Conda?executable?is?not?found解決辦法
這篇文章主要給大家介紹了關(guān)于新版Pycharm顯示Conda?executable?is?not?found解決辦法,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Pycharm具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07