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

熱點內容
現代編譯系統 瀏覽:403
python中列表是否為空 瀏覽:273
android編譯release版本 瀏覽:749
如何讓pdf不能列印 瀏覽:551
單片機和溫度感測器 瀏覽:482
windows伺服器怎麼分卷 瀏覽:135
雷雲2卡從雲伺服器同步設置 瀏覽:957
單片機技術一學就會 瀏覽:505
手機攝像文件夾名 瀏覽:134
口才訓練手冊編譯口才精品書系 瀏覽:999
linuxfunc 瀏覽:270
高德地圖解壓後的文件 瀏覽:639
php加水印類 瀏覽:228
編譯原理定義表格和編寫查找函數 瀏覽:350
指數函數和對數函數的高精度快速演算法 瀏覽:210
c預編譯干什麼 瀏覽:25
hp網路共享文件夾 瀏覽:368
程序員如何不被廢 瀏覽:807
二進制流轉pdf 瀏覽:918
php判斷爬蟲 瀏覽:572