我試圖讓Python監聽我的網絡,並列出所有傳入連接,只要它運行。但是我撞到了一堵磚牆,似乎無法找到如何。有什麼建議麼?使用Python 2.7.3使用Python列出Linux中的所有傳入連接
1
A
回答
2
@millimoose: 我不認爲他需要/想要使用python監聽所有套接字。 他們更有可能之後是 Python bindings to libpcap
+0
是的,這樣做的工作,謝謝(: – Ajukilibodin
1
您可以使用netstat
列出所有傳入的網絡連接。有人甚至寫了一個Python實現的netstat
:http://voorloopnul.com/blog/a-python-netstat-in-less-than-100-lines-of-code/
0
你的問題是細節非常模糊的,但如果你想要做的就是看你的機器的入站連接,你可以做到這一點只是蟒蛇的幾行。
from socket import *
rawSocket = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)
rawSocket.bind(('IP_ON_IFACE_TO_LISTEN_ON', 0))
while True:
data = rawSocket.recv(2048)
# http://en.wikipedia.org/wiki/IPv4#Packet_structure
# Internet Header Length; Have to determine where the IP header ends
ihl = ord(data[0]) & 15
ip_payload = data[ihl*4:]
# http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure
# Match SYN but not SYN/ACK
if (ord(ip_payload[13]) & 18) == 2:
src_addr = inet_ntoa(data[12:16])
dst_addr = inet_ntoa(data[16:20])
# Could use struct.unpack, might be clearer
src_port = (ord(ip_payload[0]) << 8) + ord(ip_payload[1])
dst_port = (ord(ip_payload[2]) << 8) + ord(ip_payload[3])
src_str = (src_addr+':'+str(src_port)).ljust(22)
dst_str = (dst_addr+':'+str(dst_port))
print "%s=> %s" % (src_str, dst_str)
這將打印所有設置了SYN標誌的入站TCP數據包,而不管RST或ICMP響應如何。你的問題陳述'列出所有傳入的連接',因爲UDP是無連接的,我假設這就是你問的。
FWIW
相關問題
- 1. Java - 列出所有連接
- 2. Linux的 - 如何列出所有用戶
- 3. Linux列出所有坐騎
- 4. oracle查詢使用','連接所有列
- 5. 如何列出Linux中的所有Python環境?
- 6. 列出通過ado連接連接的所有查詢
- 7. 如何使用Python列出所有本地接口和地址?
- 8. 使用python&pywinrm從linux連接到powershell使用python&pywinrm
- 9. 使用Python連接列出的名單列表鍵
- 10. 有沒有辦法看到與C + +傳入/傳出連接?
- 11. 如何列出linux中的管理組中的所有用戶
- 12. MySQL連接所有列
- 13. 在python中連接列表時出錯
- 14. 使用`j`選擇加入x`的`列及其所有非連接列
- 15. 列出連接到windows的所有可用網絡
- 16. 列出頁面中打開的所有本地連接通道
- 17. 如何在Visual C++中列出所有連接的USB設備
- 18. 列出Excel中的所有計算機連接VBA
- 19. 在Cocoa中列出所有已連接的iDevices
- 20. 如何配置PostgreSQL以接受所有傳入連接
- 21. 使用python列出Amazon S3存儲桶中的所有文件
- 22. 列出所有沒有系統用戶的Linux用戶
- 23. python中的列表連接
- 24. WebSpehere上的傳入連接隊列
- 25. Python如何使用連接函數連接列表列表
- 26. Linq返回連接中所有表的所有列
- 27. 如何查找在Linux(Ubuntu)中連接的所有USB設備?
- 28. 列出所有當前連接到服務器套接字
- 29. 接受所有傳入的XMPP聊天wokkel python
- 30. 沒有使用連接的Python串聯
從這裏開始:http://docs.python.org/library/socket.html。也可能是一個基於C語言的套接字API教程,因爲Python標準庫對它進行了相當密切的反映。 (我不確定哪一個會很好,但我鏈接的文檔中提到了幾個。) – millimoose
請詳細說明您碰到磚牆的位置。啓動python解釋器?尋找一個圖書館使用?使用庫? – Kevin
您是否在談論只聽一個端口或讓您的python應用程序主動嗅探您的網絡? – Drahkar