導航:首頁 > 配伺服器 > 伺服器怎麼獲取客戶端ip地址怎麼辦

伺服器怎麼獲取客戶端ip地址怎麼辦

發布時間:2022-06-25 03:39:59

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

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

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

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

2. 如何通過Socket獲得所有客戶端連接的IP地址

如果伺服器端要獲取客戶端ip的話:
//假設socket(),bind(),listen()函數已經完成addrlen
=
sizeof(client);connetfd
=
accept(listenfd,(struct
sockaddr
*)&client,&addrlen);那麼client.sin_port
就是客戶端的埠
client.sin_addr.s_addr
就是客戶端的ip。
這兩個都是以網路位元組序來保存的,如果要printf的話需要先轉化為主機位元組序

3. 如何獲取客戶端IP,WEB伺服器IP

客戶端 IP 地址是通過 CGI 變數 REMOTE_ADDR 得到的,這個是 HTTP 伺服器負責提供。 HTTP 伺服器和客戶端瀏覽器之間存在 socket 連接,socket 連接信息包含了另一側的 IP 地址和埠。
當然,最終用戶如果是通過代理伺服器訪問怎麼辦呢?目前主流的 HTTP 代理伺服器都支持在 HTTP 報頭添加 X-Forwarded-For 信息,這可以是一個列表,如果所有的代理

4. 一台主機上網採用自動獲取IP地址的方式,如何簡要描述其獲取地址的過程及所採用協議工作方式

主機獲取地址的過程及所採用協議工作方式:

發現階段:即DHCP客戶機尋找DHCP伺服器的階段。DHCP客戶機以廣播的方式發送DHCP discover 發現信息來尋找DHCP伺服器(因為DHCP伺服器的IP地址對客戶機來說是未知的)。

即向255.255.255.255發送特定的廣播信息,網路上每一台安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP伺服器才會作出響應。

提供階段:即DHCP伺服器提供IP地址的階段。在網路中收到DHCP discover發現信息的DHCP伺服器都會作出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置額DHCP offer提供信息。

選擇階段:DHCP客戶機選擇某台DHCP伺服器提供的IP地址的階段。 如果有多台DHCP伺服器向DHCP客戶機發來的DHCP offer,客戶機只接收第一個收到的DHCP offer,然後它以廣播的方式回答一個DHCP request請求信息。

該信息中包含它所選定的DHCP伺服器請求IP地址的內容。

之所以要以廣播的方式回答,是為了通知所有的DHCP伺服器,它將選擇某台DHCP伺服器所提供的IP地址。

總結如下:

DHCP伺服器向DHCP客戶機出租的IP地址一般都由一個租借期限,期滿後DHCP伺服器會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP伺服器發送其更新租約的信息。



5. 如何獲取客戶端和伺服器ip地址

您好,.X.XXX.XXX系列IP,而這個函數獲取的是區域網網關出口的IP地址,如果訪問者使用代理伺服器,將不獲取代理伺服器的IP,而是獲取訪問者網關的真實IP。如果將這個函數應用到限IP訪問的網頁中,別人即使通過限IP訪問段中的代理伺服器,也不能訪問該頁面。
下面提供一個函數:<?php
// 定義一個函數getIP()
function getIP(){global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");else$ip = "Unknow";
return $ip;}
// 使用方法:
echo getIP();?>
getenv("REMOTE_ADDR")用來取得客戶端的 IP 地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理伺服器取得客戶端的真實 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 來讀取。
但是如果客戶端沒有通過代理伺服器來訪問,那麼用getenv("HTTP_X_FORWARDED_FOR") 取到的值將是空的。
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不為空(即客戶端使用代理伺服器的情況下),則變數$ip等於getenv("HTTP_X_FORWARDED_FOR") 取到的真實IP值。
如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值為空(即沒有使用代理伺服器),則不會執行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");這一行語句。
這種情況下已經確認客戶端沒有使用代理伺服器,從而通過
else if(getenv("REMOTE_ADDR"))
這兩行語句獲得客戶端的IP地址也是真實的IP地址。

6. http伺服器怎樣獲取客戶端ip

客戶端
ip
地址是通過
cgi
變數
remote_addr
得到的,這個是
http
伺服器負責提供。
http
伺服器和客戶端瀏覽器之間存在
socket
連接,socket
連接信息包含了另一側的
ip
地址和埠。
當然,最終用戶如果是通過代理伺服器訪問怎麼辦呢?目前主流的
http
代理伺服器都支持在
http
報頭添加
x-forwarded-for
信息,這可以是一個列表,如果所有的代理

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

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

8. 如何獲得客戶端的ip地址

如果你測試訪問的時候,使用的是 localhost 進行訪問的,那麼伺服器端獲得的也就是127.0.0.1,因為localhost是一個環路地址,特殊的.
如果你是通過你的ip地址進行訪問的,那麼獲得的IP地址就會是正確的了.

-------
要通過自己本地的IP進行訪問,在控制面板的網路連接里找到本地連接,查看它的屬性,並找到"詳細信息"按鈕,點擊後彈出的對話框中IPV4地址就是本地地址.
或打開命令行,輸入 ipconfig /all 即可找到本地地址.
在瀏覽器中通過這個IP地址訪問,就不會是127.0.0.1了.

9. java服務端如何獲得客戶端的ip

serversocket()不提供這個方法,但是server端獲取到的請求new serversocket()().accept()()返回的是一個socket()對象,也就是當前連接的信息,這裡麵包含有一個 getRemoteAddress方法。多看看API

閱讀全文

與伺服器怎麼獲取客戶端ip地址怎麼辦相關的資料

熱點內容
60減15折扣計演算法 瀏覽:200
面基圈app如何注銷 瀏覽:335
道言app如何下載 瀏覽:393
單片機的計算器 瀏覽:433
圖論頂點間路徑長度演算法 瀏覽:741
和式演算法 瀏覽:791
共識演算法包括哪些內容 瀏覽:835
德甲比賽app哪個好 瀏覽:388
阿里雲伺服器ip怎麼做映射 瀏覽:165
共享文件夾如何不能復制 瀏覽:191
程序員摘下帽子 瀏覽:554
如何讓電腦變成互聯網伺服器 瀏覽:583
分析化學第五版pdf 瀏覽:697
cad連續標注快捷鍵命令 瀏覽:142
pythontelnet庫 瀏覽:472
今日加密貨幣最新價格 瀏覽:143
場景文件夾套裝 瀏覽:123
pythoncert 瀏覽:252
離線rz命令不能用 瀏覽:230
美發師致敬程序員 瀏覽:594