當前位置:首頁 » 雲伺服器 » 伺服器獲取客戶端ip

伺服器獲取客戶端ip

發布時間: 2022-02-01 07:35:18

⑴ 在java後台伺服器,如何根據HttpSession獲得客戶端ip

只能根據用戶請求帶過來的sessionID所匹配的ip地址 而且只可以通過request獲得ip 反正你能得到session 那得到request是一樣簡單的不是嗎
得到request後命令為:

String ip = request.getRemoteAddr();
這個ip字元串就是了

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

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

⑶ 如何獲取用戶伺服器的IP地址

  • 開發工程中,需要給第三方提供介面,由於是僅僅對單獨一人提供介面支持,就暫時採取了IP白名單過濾的方式處理。下面是獲取用戶IP地址的方法privatefunctiongetIP(){

static$realip;

if(isset($_SERVER)){

if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];

}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){

$realip=$_SERVER["HTTP_CLIENT_IP"];

}else{

$realip=$_SERVER["REMOTE_ADDR"];

}

}else{

if(getenv("HTTP_X_FORWARDED_FOR")){

$realip=getenv("HTTP_X_FORWARDED_FOR");

}elseif(getenv("HTTP_CLIENT_IP")){

$realip=getenv("HTTP_CLIENT_IP");

}else{

$realip=getenv("REMOTE_ADDR");

}

}

return$realip;

}

⑷ 獲取客戶端IP地址

// 獲得本機當前IP
IPHostEntry m_local = Dns.Resolve(Dns.GetHostName());
Console.WriteLine(m_local.AddressList[0].ToString());

// 通過外部網站得到本機的外部IP
static string GetOuterIP()
{
string patt = @"IP: \[(?<IP>[0-9\.]*)\]";
string url = "http://www.skyiv.com/info";
return Regex.Match(GetPage(url), patt).Groups["IP"].Value;
}

⑸ 服務端怎麼獲取客戶端的ip java

網路通信可分為兩種模式:TCP有連接的通信
UDP無連接的通信
依照上述的問題我可以理解為你是要進行有連接的通信。是要經過三次握手才能實現可靠的連接
第一次:建立連接時三次握手,客戶端發送syn包(syn=j)到伺服器,並進入SYN_SENT狀態,等待伺服器確認;SYN(Synchronize Sequence Numbers)同步序列號。

伺服器端即可使用:
Socket s=serverSocket.accept();
String clientIP=s.getInetAddress().toString();

這就實現了java伺服器端獲取到連接此伺服器的客戶端的IP了,你若想實現獲取所有連接此伺服器的客戶端的IP,你可以把每次accept()返回的socket放進全局的Vector裡面,然後在遍歷這個vector方法就同上代碼咯……

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

⑺ 如何獲取客戶端IP和MAC地址,我獲取的是伺服器的,C

MAC地址是2層的東西,過了3層路由器後源MAC與目的MAC就會跟著所經過的路由器地址改變,如果在客戶端沒有任何響應進程將MAC地址信息放在應用層,理論上你不可能獲得。能非常容易的獲得ip地址、mac地址跟主機名應該是蠻危險的事情。你要真想問,你可以去黑客論壇找找吧。。。

⑻ TCP伺服器怎麼獲得客戶端socket連接的IP

你是想知道代碼還是想了解原理,一般的C/S模型都由客戶端發出連接請求(客戶端在代碼中都是存有伺服器端的具體ip地址和埠信息(也就是伺服器端的INET協議族地址結構)的),當客戶端發送連接請求後,伺服器端通過accpet函數接收連接請求,accpet函數示例:accept(ServerSocket,(struct sockaddr *)&from,&len) (from是一個INET協議族地址結構變數,(struct sockaddr *)的作用是把INET協議族地址結構強制轉換為通用地址結構) ,accpet函數在接收連接的同時會把客戶端的具體ip和埠信息賦值給from,所以說客戶端socket連接的ip(非綁定的話客戶機隨機綁定ip和埠)是包含在連接報文數據里,伺服器端只有接收到客戶端發送的連接信息後,才會獲得客戶端的ip和埠信息,獲得具體ip的方式是通過函數,這個函數可以提取出IPv4地址結構中的點分十進制地址,函數用法:inet_ntoa(from.sin_addr)。

熱點內容
單片機android 發布:2024-09-20 09:07:24 瀏覽:765
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:664
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:311
子彈演算法 發布:2024-09-20 08:41:55 瀏覽:289
手機版網易我的世界伺服器推薦 發布:2024-09-20 08:41:52 瀏覽:817
安卓x7怎麼邊打游戲邊看視頻 發布:2024-09-20 08:41:52 瀏覽:162
sql資料庫安全 發布:2024-09-20 08:31:32 瀏覽:94
蘋果連接id伺服器出錯是怎麼回事 發布:2024-09-20 08:01:07 瀏覽:507
編程鍵是什麼 發布:2024-09-20 07:52:47 瀏覽:658
學考密碼重置要求的證件是什麼 發布:2024-09-20 07:19:46 瀏覽:481