簡體   English   中英

如何使用C,Linux,Socket知道服務器的各種IP地址?

[英]How to know the various IP addresses of the server using C, Linux, Socket?

我知道一個遠程節點的IP地址。 跟蹤路由。 但是,我想知道其接口中的所有IP地址。 我該怎么辦? 該節點沒有主機名,因此我無法使用該API通過主機名API獲取各種ifaddress。 我搜索了很多地方,但是找不到如何獲取遠程節點的各種IP地址。 有可能得到嗎? 基本上,我正在實現traceroute,我的目的是顯示中間節點的環回地址,而不是實際的接口地址。 如果環回地址不可用,我想顯示實際的接口地址。 我在這里苦苦掙扎,對此一無所知。 所有這些都是使用C-linux,UDP套接字實現的。

我想知道其接口中的所有IP地址。 我該怎么辦

查找DNS或登錄並使用依賴於操作系統的工具/ API查找本地接口的IP地址,否則您將迷路。

從技術上講,如果您在同一網絡上,則可以使用macid並嗅探網絡流量,以在該接口上找到其他IP,但是一旦離開本地網絡,就幾乎不可能找到該計算機正在偵聽的其他IP。如果他們提供此信息將是一個安全問題。

traceroute的工作方式是通過將IP TTL值增加的數據包發送到遠程地址,沿途的路由器將產生超過超時的ICMP TTL時間,從而將其IP源地址顯示回發送方,因此您可以了解到您的躍點嘗試與特定的遠程地址通信時,數據可能正在遍歷。 icmp錯誤消息將包含躍點的傳入接口的IP地址,在您的情況下,您還希望發現分配給其他傳出接口的所有其他IP地址(從發件人的角度來看是傳出的),但是使用上述方法是不可能的提到的技術或其他任何技術。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM