問題:
確定Linux 的機器位址使用編程,專門針對多個潛在的公共IP 位址位址。
解決方案:
getifaddrs() 函數為在Linux 和POSIX 上檢索IP 位址提供了更可靠的方法- 相容的作業系統。它傳回 ifaddrs 結構的鍊錶,每個結構代表一個網路介面及其關聯的位址。以下是示範其用法的程式碼範例:
在程式碼中,getifaddrs() 用網路介面資訊填入 ifAddrStruct 鍊錶。每個 ifaddrs 結構都包含一個 ifa_addr 成員,它是指向代表 IP 位址的套接字位址結構的指標。 AF_INET 用於 IPv4 位址,AF_INET6 用於 IPv6 位址。
程式碼迭代鍊錶,檢查 ifa_addr 是否有效,然後透過將其轉換為人類位址來檢索並列印 IP 位址字串使用inet_ntop()的可讀格式。
要識別公用IP位址,您可以檢查網路介面名稱(例如「eth0」)或比較 IP 位址以確定哪一個與外部網路相符。
以上是如何用 C 語言以程式設計方式檢索 Linux 機器的 IP 位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!