5
我在Windows中擁有DWORD套接字。我需要知道它是否連接到互聯網,或者是否是本地連接,以及某種形式的本地主機。有沒有一種很好的方法從套接字獲取套接字在windows中的連接地址?或者有更好的方法來判斷連接是否是本地連接?如何從套接字獲取IP地址在Windows中
我在Windows中擁有DWORD套接字。我需要知道它是否連接到互聯網,或者是否是本地連接,以及某種形式的本地主機。有沒有一種很好的方法從套接字獲取套接字在windows中的連接地址?或者有更好的方法來判斷連接是否是本地連接?如何從套接字獲取IP地址在Windows中
您可能要撥打getpeername()
。使用它是非常基本的,你通過一個sockaddr
指針和一個長度,它會爲你填充數據。
至於確定連接是否爲本地,getaddrinfo()
可以給你一個所有可用本地地址的列表。您會將getpeername()
的結果與本地地址列表進行比較。
你必須小心使用IPv6。你很可能沒有自己創建套接字(否則你可能記得它連接的是什麼),所以你可能正在處理在別處創建的一些套接字。由於這不在你的控制範圍內,它可能會使用IPv6。 – MSalters 2009-07-15 11:43:20