簡體   English   中英

獲取實際機器的IP地址

[英]Get actual machine's ip address

我需要獲取計算機的實際IP地址(而不是網關),但是我嘗試過的所有解決方案都返回了網關IP地址。 例如,此鏈接中的所有建議使用PHP獲取客戶端IP地址都會返回網關地址。 有沒有一種方法可以獲取計算機的實際IP地址(公共)-使用php還是java?

java的InetAddress類可能有用。

InetAddress IP=InetAddress.getLocalHost();
System.out.println("IP is := "+IP.getHostAddress());

輸出:IP為:= 10.100.95.228

從注釋中聽起來,您似乎想為訪問服務器的每台計算機創建唯一的標識符。 沒有任何信息可以用作這樣的標識符,這就是為什么:

IP地址您可以看到的IP地址是公用地址,而不是NAT路由器后面的設備的專用地址。

MAC地址每台計算機中每個網卡的MAC地址是唯一的,但是該信息在LAN網段之外不可用。

您可能可以使用多種信息的組合(例如IP地址和用戶代理)來做出有根據的猜測,即給定的請求來自唯一的用戶,但這是一種猜測。確定的。

使用$_SERVER['REMOTE_ADDR']獲取用戶的公用地址,然后使用$_SERVER['USER_AGENT']獲取其用戶代理。 如果這兩者的組合是唯一的,則很有可能該請求來自唯一的用戶。

另一種執行此操作的方法是設置一個cookie,該cookie的到期日或會話ID都不遠。 但這全都取決於您需要跟蹤用戶多長時間,是否需要在他們關閉瀏覽器並隨后返回之后跟蹤他們,等等。唯一有力的證明是在以下位置創建一個帳戶他們在您的網站上進行身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM