導航:首頁 > 配伺服器 > 伺服器獲取客戶端地址為0

伺服器獲取客戶端地址為0

發布時間:2022-09-18 23:58:53

Ⅰ 為什麼在jsp中 request.getLocalAddr()為0.0.0.0,而不是本地ip地址

原因:這種情況只有在伺服器和客戶端都在同一台電腦上才會出現,即採用localhost進行頁面訪問的時出現。具體原因是因為C:\Windows\System32\drivers\etc\hosts這個東西作怪。

解決辦法:(1)以文本的形式打開,只要注釋掉文件中的 # ::1 localhost 這一行即可解決問題。
(2)本機訪問的時,不要用localhost訪問,用127.0.0.1或本機ip代替
(3)採用${pageContext.request.serverName }替代可以獲取到localhost

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

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

Ⅲ 如何獲取客戶端和伺服器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地址。

Ⅳ 如何獲得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的話需要先轉化為主機位元組序

Ⅳ 通常說的伺服器獲取客戶端電腦的IP指的是"IPv4地址",還是"DNS伺服器"地址

電腦是從DHCP伺服器獲得ip地址以及dns地址。
所以電腦不需要手動設置。
直接從伺服器獲得。

Ⅵ PHP獲取客戶端IP是127.0.0.1 什麼原因

127.0.0.1 是具有特殊含義的 IP 地址,代表的是本機。所以如果是在本地進行PHP測試(即伺服器與客戶端在一台電腦上),可能返回的就是這個地址。

Ⅶ 如何獲取cas應用中的伺服器和客戶端地址

0
pter的updatecount方法,final ClientInfo clientInfo = ClientInfoHolder.getClientInfo();這行代碼是獲取客戶端IP和服務端IP

Ⅷ asp.net網站發布到伺服器之後,獲取的客戶端IP都是127.0.0.1,為什麼

publicstringIPAddress()
{
stringresult=String.Empty;
result=HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
if(!string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(!string.IsNullOrEmpty(result))
{
//可能有代理
if(result.IndexOf(".")==-1)//沒有"."肯定是非IPv4格式
result=null;
else
{
if(result.IndexOf(",")>=0)
{
//有",",估計多個代理。取第一個不是內網的IP。
result=result.Replace("","").Replace("'","").Replace(";","");
string[]temparyip=result.Split(',');
for(inti=0;i<temparyip.Length;i++)
{
if(IsIPAddress(temparyip[i]))
{
if(!temparyip[i].StartsWith("10.")&&!temparyip[i].StartsWith("192.168")&&!temparyip[i].StartsWith("172.16."))
{
result=temparyip[i];//找到不是內網的地址
break;
}
}
}
}
if(!IsIPAddress(result))//代理即是IP格式
{
result=null;//代理中的內容非IP,取IPk
}
}
}
}
else
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.UserHostAddress;
}
if(string.IsNullOrEmpty(result))
{
result="000.000.000.000";
}
returnresult;
}

Ⅸ 伺服器端如何獲取客戶端的mac地址

放在伺服器上當然獲取不到,必須要在本地。
所以很多網站說為了安全,一般都說要安裝什麼插件之類,這些插件中,有的就包含了mac的插件。

閱讀全文

與伺服器獲取客戶端地址為0相關的資料

熱點內容
em78單片機 瀏覽:952
splitjava空格 瀏覽:248
電腦怎麼谷歌伺服器地址 瀏覽:515
nx自定義工具啟動宏命令 瀏覽:101
程序員怎麼解決無法訪問互聯網 瀏覽:303
java訪問本地文件 瀏覽:747
瓦斯琪伺服器怎麼用 瀏覽:22
安卓主題用什麼app 瀏覽:747
修改伺服器pci地址空間 瀏覽:321
程序員將來去哪裡 瀏覽:966
虛幻5創建c無法編譯 瀏覽:189
javaweb項目設計 瀏覽:407
國家反詐app緊急聯系人怎麼填 瀏覽:191
單片機旋轉led 瀏覽:340
杜洋單片機官網 瀏覽:467
法國加密貨幣稅務 瀏覽:28
stringslinux 瀏覽:944
gis伺服器里文件如何處理 瀏覽:829
sec加密數字資產 瀏覽:930
winrar命令行壓縮 瀏覽:790