導航:首頁 > 配伺服器 > 伺服器怎麼獲取客戶端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地址怎麼辦相關的資料

熱點內容
記者證終端加密申請報告書 瀏覽:210
安裝pgi後編譯找不到編譯器 瀏覽:821
為什麼app沒有聲音 瀏覽:931
怎麼登錄我的世界伺服器地址 瀏覽:507
什麼app可以查孕周 瀏覽:391
hishopphp 瀏覽:959
小米動態圖標在哪個文件夾 瀏覽:336
我的世界程序員 瀏覽:249
班級網頁用什麼app 瀏覽:16
求生之路命令大全 瀏覽:223
市場調研pdf 瀏覽:589
電視中央5套和中央6頻道加密 瀏覽:346
searchpdf 瀏覽:365
女程序員借男朋友3萬完整版 瀏覽:179
照美食的app是什麼 瀏覽:302
如何設置ftp伺服器訪客登錄 瀏覽:906
郵政停止生活APP是什麼意思 瀏覽:50
全球最好用的編程軟體 瀏覽:490
單片機lcd不亮 瀏覽:997
程序員自動化 瀏覽:927