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

熱點內容
java控制項位置 瀏覽:84
怎麼衡量程序員知道不知道違法 瀏覽:983
封閉式安卓系統是什麼意思 瀏覽:838
登錄mysql的命令是什麼 瀏覽:642
linux判斷是否為目錄 瀏覽:947
美的中央空調用什麼壓縮機 瀏覽:466
cisco交換機密碼加密 瀏覽:73
手機解壓7zip用什麼軟體 瀏覽:189
滑鼠指針壓縮包 瀏覽:266
加密區塊鏈交易中心 瀏覽:603
高二信息技術編程教學反思 瀏覽:545
phython開發的軟體要帶編譯器嗎 瀏覽:8
軟體壓縮文件解壓完能直接用嗎 瀏覽:857
java軟體編程課程 瀏覽:649
深圳哪裡可以租自行車app 瀏覽:342
linux空格換行 瀏覽:20
雲伺服器可以共享嗎 瀏覽:865
android強制編譯 瀏覽:488
linux內存管理原理 瀏覽:566
綉球pdf 瀏覽:498