2015-05-14 61 views
2

有沒有辦法獲得它們關聯的tcp,udp連接和進程列表?在Linux中獲取TCP/UDP表

我通過使用「GetExtendedTcpTable()」和「GetExtendedUdpTable()」在Windows中做到了這一點,我想在Linux中實現同樣的事情。

有人可以幫忙嗎?

謝謝。

+1

您可以嘗試閱讀['netstat' source](http://unix.stackexchange.com/questions/21503/source-code-of-netstat) – ForceBru

+0

您可以使用SNMP來完成此操作。 – EJP

+0

你有幫助。你爲什麼不接受答案? – hek2mgl

回答

2

你可以做這樣的東西:

#include <fstream> 
#include <iostream> 

int main() 
{ 
    std::ifstream tcp("/proc/net/tcp"); 

    std::string line; 
    while(std::getline(tcp, line)) 
     std::cout << line << '\n'; 
} 

要發現什麼其他的名稱,可以試試這個在命令行:

ls -l /proc/net/ 

不知道該進程ID相關聯的最佳方式(PID )與套接字,但您可以交叉參考/proc/<pid>/fd,其中<pid>是實際數字,其中/proc/net/tcp