導航:首頁 > 配伺服器 > tcp如何伺服器獲取客戶端ip

tcp如何伺服器獲取客戶端ip

發布時間:2023-06-03 16:43:21

1. 如何獲得Socket連接客戶端的IP地址

如果伺服器端要獲取客戶端ip的話:


//假設socket(),bind(),listen()函數已經完成
addrlen=sizeof(client);
connetfd=accept(listenfd,(structsockaddr*)&client,&addrlen);

那麼client.sin_port 就是客戶端的埠

client.sin_addr.s_addr 就是客戶端的ip。

這兩個都是以網路位元組序來保存的,如果要printf的話需要先轉化為主機位元組序

2. 客服端和服務端建立TCP連接後,怎麼從服務端獲取客戶端的IP地址

Socket clientSock = ServerSocket.Accpet();
接受客戶端連接

DateTime connectTime = DateTime.Now;
連接一個客戶端後,當前時間就是連接時間。

(clientSock.RemoteEndPoint as IPEndPoint).IPAddress;
ip地址
(clientSock.RemoteEndPoint as IPEndPoint).Port;
埠號

3. 伺服器如何獲取客戶端的IP地址,並與客戶端建立TCP連接

客戶端的IP自動獲取,關鍵要看客戶端的IP是由誰來分配的,如果都是有ISP提供的那麼伺服器利用IP去連接客戶端就不太可能。可以嘗試用下面兩種思路解決:
1、能否讓客戶機主動連接伺服器。
2、使用動態DNS。讓每個客戶機都申請一個動態域名,無論它的IP怎樣變,當改變以後都會到DNS伺服器進行注冊,然後伺服器使用主機的名字訪問客戶端。

4. TCP伺服器如何檢測客戶端的IP和埠

你熟悉socket
API不?如果不熟悉的話建議先看看socket編程的文檔。這是鏈接地址:http://msdn.microsoft.com/en-us/library/ms738545(v=VS.85).aspx
一般服務端的sokcet
API調用順序為:
bind()
//
設置服務埠
listen()
//
等待客戶端連接
accept()
//
與客戶端建立連接
請參考:http://msdn.microsoft.com/en-us/library/ms737526(v=VS.85).aspx
這是accept函數的原型:
SOCKET
accept(
__in
SOCKET
s,
__out
struct
sockaddr
*addr,
__inout
int
*addrlen
);
第二個參數,
addr,包含了客戶端的IP地址和埠。你可以認為這就是客戶端的IP和埠。但是,要注意的是這個IP不一定就完全等價於客戶端本機的埠。比如:客戶端在一個區域網里,IP地址是192.168.1.100,然後它通過ADSL路由連接到internet,再通過internet連接到服務端。這個時候,服務端獲得的客戶端IP地址就可能是那個ADSL路由的IP。

閱讀全文

與tcp如何伺服器獲取客戶端ip相關的資料

熱點內容
邵氏100部恐怖影片 瀏覽:100
青春期2裡面的跳舞的歌 瀏覽:36
國產動作愛情片 瀏覽:419
韓國有部特種兵與護士的電影 瀏覽:661
《貪婪》中的日本女演員 瀏覽:477
男主得艾滋病的電影 瀏覽:806
罪孽船長泰國版在線觀看 瀏覽:193
外國電影一個黑男孩在深林 瀏覽:902
叔嫂不倫之戀電影 瀏覽:211
溫暖溫柔是哪部小說 瀏覽:203
穿越抗戰自立為軍閥的小說 瀏覽:601
韓國強殲電影有哪些 瀏覽:291
一女二三男小說穿越文 瀏覽:824
台灣用哪個軟體看電視 瀏覽:365
父親為救兒子像男人獻身的泰國電影 瀏覽:72
台灣民族片子 瀏覽:4
香港老公出軌電影 瀏覽:462
黑社會後生可畏國語 瀏覽:137
韓國肉肉電影在線觀看 瀏覽:345
中文版韓國倫理電影 瀏覽:397