首頁 > 後端開發 > C++ > 如何用 C 語言以程式設計方式檢索 Linux 機器的 IP 位址?

如何用 C 語言以程式設計方式檢索 Linux 機器的 IP 位址?

Mary-Kate Olsen
發布: 2024-12-10 00:19:14
原創
332 人瀏覽過

How to Programmatically Retrieve a Linux Machine's IP Addresses in C  ?

如何用C 語言檢索Linux 機器的IP 位址

問題:

確定Linux 的機器位址使用編程,專門針對多個潛在的公共IP 位址位址。

解決方案:

使用getifaddrs()

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板