TcpListener類獲得客戶串連的IP地址

來源:互聯網
上載者:User
用TcpListener類作為服務端,TcpClient類作為用戶端,進行通訊的話,似乎很難獲得用戶端的IP地址,以下經驗,是我經曆千辛萬苦得來的,請大家捧場~1、如果用戶端先用Dns.GetHostName()獲得電腦名稱,然後
Dns.GetHostAddresses(Dns.GetHostName())獲得IP列表的話,是不容易得到真實IP的,原因是:IP列表裡面肯定
有127.0.0.1這個IP,幹擾你的思路,你還需要費心思排除這個IP;也許這個機器不止1個網卡,那麼N多IP地址,你如何確定哪個網卡,哪個IP
是與你服務端通訊的IP?如果該使用者是內網使用者,即使只有1個網卡,那麼你獲得的IP只是內網IP,無法獲得他的網關IP,有些情況是必須獲得網關IP
的,這很無奈。2、TcpClient有一個Client方法,可以把TcpClient封裝到Socket,到了Socket層,就可以很容易獲得客戶IP
了,不過前提是:VS2005……非常鬱悶,VS2003裡面的TcpClient.Client方法是私人成員,不能直接用,間接用麻煩得很,所以推薦
大家升級到2005,是時候了~3、經典的代碼:((IPEndPoint)tcpServer.Client.RemoteEndPoint).Address.ToString();這個就能獲得此串連的遠端IP地址,伺服器用此代碼,就能獲得用戶端IP地址了,正宗真實網關IP~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.