導航:首頁 > 配伺服器 > 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相關的資料

熱點內容
紅米無法訪問data文件夾 瀏覽:685
國家反詐中心app為什麼審核不過去 瀏覽:871
linuxwindows啟動盤 瀏覽:811
百度貼吧app怎麼看訪客 瀏覽:435
javaio文件復制 瀏覽:407
app上海總部在什麼樓里 瀏覽:371
格式化硬碟dos命令 瀏覽:496
紅茶可以緩解壓力 瀏覽:999
騰訊雲怎麼弄七十多一年雲伺服器 瀏覽:719
java按鈕設置圖片 瀏覽:866
php數字分頁代碼 瀏覽:793
旅遊業程序員 瀏覽:401
區塊鏈第三代加密數字資產 瀏覽:525
把播放清單放在雲伺服器上 瀏覽:879
phpppt下載 瀏覽:302
1929pdf 瀏覽:366
編譯器是終端嗎 瀏覽:541
pdf改b4 瀏覽:380
命令通道 瀏覽:712
pdf去 瀏覽:545