python編寫(xiě)小程序探測(cè)linux端口占用情況
今天要使用python寫(xiě)一個(gè)端口探測(cè)的小程序,以檢測(cè)一些特定的服務(wù)端口有沒(méi)有被占用,突然發(fā)現(xiàn)自己居然不知道在linux中如何查詢端口被占用的情況,天吶,趕快學(xué)習(xí)一下。??
Linux如何查看端口
1、lsof -i:端口號(hào) 用于查看某一端口的占用情況,比如查看8000端口使用情況,lsof -i:8000
# lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME lwfs 22065 root 6u IPv4 4395053 0t0 TCP *:irdmi (LISTEN)
可以看到8000端口已經(jīng)被輕量級(jí)文件系統(tǒng)轉(zhuǎn)發(fā)服務(wù)lwfs占用
2、netstat -tunlp |grep 端口號(hào),用于查看指定的端口號(hào)的進(jìn)程情況,如查看8000端口的情況,netstat -tunlp |grep 8000
# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 4814/rpcbind tcp 0 0 0.0.0.0:5908 0.0.0.0:* LISTEN 25492/qemu-kvm tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 22065/lwfs tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 38296/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 5278/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5013/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5962/master tcp 0 0 0.0.0.0:8666 0.0.0.0:* LISTEN 44868/lwfs tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 22065/lwfs
# netstat -tunlp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 22065/lwfs
說(shuō)明一下幾個(gè)參數(shù)的含義:
-t (tcp) 僅顯示tcp相關(guān)選項(xiàng) -u (udp)僅顯示udp相關(guān)選項(xiàng) -n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化為數(shù)字 -l 僅列出在Listen(監(jiān)聽(tīng))的服務(wù)狀態(tài) -p 顯示建立相關(guān)鏈接的程序名
附加一個(gè)python端口占用監(jiān)測(cè)的程序,該程序可以監(jiān)測(cè)指定IP的端口是否被占用。
#!/usr/bin/env python # -*- coding:utf-8 -*- import socket, time, thread socket.setdefaulttimeout(3) #設(shè)置默認(rèn)超時(shí)時(shí)間 def socket_port(ip, port): """ 輸入IP和端口號(hào),掃描判斷端口是否占用 """ try: if port >=65535: print u'端口掃描結(jié)束' s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) result=s.connect_ex((ip, port)) if result==0: lock.acquire() print ip,u':',port,u'端口已占用' lock.release() except: print u'端口掃描異常' def ip_scan(ip): """ 輸入IP,掃描IP的0-65534端口情況 """ try: print u'開(kāi)始掃描 %s' % ip start_time=time.time() for i in range(0,65534): thread.start_new_thread(socket_port,(ip, int(i))) print u'掃描端口完成,總共用時(shí):%.2f' %(time.time()-start_time) # raw_input("Press Enter to Exit") except: print u'掃描ip出錯(cuò)' if __name__=='__main__': url=raw_input('Input the ip you want to scan: ') lock=thread.allocate_lock() ip_scan(url)
該程序執(zhí)行結(jié)果如下:
# python scan_port.py Input the ip you want to scan: 20.0.208.112 開(kāi)始掃描 20.0.208.112 20.0.208.112 : 111 端口已占用 20.0.208.112 : 22 端口已占用 20.0.208.112 : 8000 端口已占用 20.0.208.112 : 15996 端口已占用 20.0.208.112 : 41734 端口已占用 掃描端口完成,總共用時(shí):9.38
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
TensorFlow內(nèi)存管理bfc算法實(shí)例
今天小編就為大家分享一篇TensorFlow內(nèi)存管理bfc算法實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python使用梯度下降算法實(shí)現(xiàn)一個(gè)多線性回歸
這篇文章主要為大家詳細(xì)介紹了python使用梯度下降算法實(shí)現(xiàn)一個(gè)多線性回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03pytorch中的torch.nn.Conv2d()函數(shù)圖文詳解
這篇文章主要給大家介紹了關(guān)于pytorch中torch.nn.Conv2d()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02python 數(shù)據(jù)分析實(shí)現(xiàn)長(zhǎng)寬格式的轉(zhuǎn)換
這篇文章主要介紹了python 數(shù)據(jù)分析實(shí)現(xiàn)長(zhǎng)寬格式的轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python函數(shù)式編程指南(二):從函數(shù)開(kāi)始
這篇文章主要介紹了Python函數(shù)式編程指南(二):從函數(shù)開(kāi)始,本文講解了定義一個(gè)函數(shù)、使用函數(shù)賦值、閉包、作為參數(shù)等內(nèi)容,需要的朋友可以參考下2015-06-06python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn)
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python中利用函數(shù)裝飾器實(shí)現(xiàn)備忘功能
這篇文章主要介紹了Python中利用函數(shù)裝飾器實(shí)現(xiàn)備忘功能,同時(shí)還降到了利用裝飾器來(lái)檢查函數(shù)的遞歸、確保參數(shù)傳遞的正確,需要的朋友可以參考下2015-03-03python3?字符串str和bytes相互轉(zhuǎn)換
這篇文章主要介紹了python3?字符串str和bytes相互轉(zhuǎn)換,在文件傳輸過(guò)程中,通常使用bytes格式的數(shù)據(jù)流,而代碼中通常用str類(lèi)型,因此str和bytes的相互轉(zhuǎn)換就尤為重要,下文詳細(xì)介紹需要的小伙伴可以參考一下2022-03-03Python OpenGL繪制一場(chǎng)煙花盛會(huì)
正值新春佳節(jié),小編今天為大家?guī)?lái)了用Python OpenGL繪制的一場(chǎng)煙花盛會(huì),文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02