如何獲取客戶端和伺服器ip位址
1樓:匿名使用者
您好,.系列ip,而這個函式獲取的是區域網閘道器出口的ip位址,如果訪問者使用**伺服器,將不獲取**伺服器的ip,而是獲取訪問者閘道器的真實ip。如果將這個函式應用到限ip訪問的網頁中,別人即使通過限ip訪問段中的**伺服器,也不能訪問該頁面。
下面提供乙個函式://定義乙個函式getip()
function getip()
使用方法:
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位址。
客服端和服務端建立tcp連線後,怎麼從服務端獲取客戶端的ip位址?
2樓:網友
socket clientsock =
接受客戶端連線。
datetime connecttime =
連線乙個客戶端後,當前時間就是連線時間。
as ipendpoint).ipaddress;
ip位址。 as ipendpoint).port;埠號。
伺服器如何獲取客戶端的ip位址,並與客戶端建立tcp連線?
3樓:網友
客戶端的ip自動獲取,關鍵要看客戶端的ip是由誰來分配的,如果都是有isp提供的那麼伺服器利用ip去連線客戶端就不太可能。可以嘗試用下面兩種思路解決:
1、能否讓客戶機主動連線伺服器。
2、使用動態dns。讓每個客戶機都申請乙個動態網域名稱,無論它的ip怎樣變,當改變以後都會到dns伺服器進行註冊,然後伺服器使用主機的名字訪問客戶端。
4樓:
需要客戶端向伺服器先發起連線。伺服器一般都是處於被動的監聽。可以參考ftp的實現。
如何在webservice中獲取客戶端的ip位址
5樓:福喜
一、如果在web module單元中,可用如下語句實現(這其實是webbroker技術):
二、如果是isapi/cgi的webservice中,*中是無法存取web module單元的(uses了也不行的),如何實現?
伺服器端實現的介面函式裡,如何知道呼叫這個介面函式的客戶端的ip?
在實現部分的**裡, uses webbrokersoap單元然後,可以通過以下**直接獲得當前呼叫這個函式的客戶端的ip:
getsoapwebmodule 這個函式是在 webbrokersoap 這個單元裡的。
j**a的serversocket服務端如何獲取遠端請求連線客戶端的ip位址
6樓:匿名使用者
serversocket不提供這個方法,但是server端獲取到的請求new serversocket().accept()返回的是乙個socket物件,也就是當前連線的信內息,這裡麵包含有乙個 getremoteaddress方法容。多看看api
如何獲取客戶端真實ip
7樓:網友
在jsp裡,獲取客戶端的ip位址的方法是:,這種方法在大部分情況下都是有效的。但是在通過了 apache,nagix等反向**軟體就不能獲取到客戶端的真實ip位址了。
經過**以後,由於在客戶端和服務之間增加了中間層,因此伺服器無法直接拿到客戶端的 ip,伺服器端應用也無法直接通過**請求的位址返回給客戶端。但是在**請求的http頭資訊中,增加了x-forwarded-for資訊。用以跟蹤原有的客戶端 ip位址和原來客戶端請求的伺服器位址。
舉例來說,當我們訪問口碑網首頁時,其實並不是我們瀏覽器真正訪問到了伺服器上的 檔案,而是先由**伺服器nagix去訪問 ,**伺服器再將訪問到的結果返回給我們的瀏覽器,因為是**伺服器去訪問的,所以中通過 的方法獲取的ip實際上是**伺服器的位址,並不是客戶端的ip位址。
public string getremortip(httpservletrequest request)
return "x-forwarded-for");
獲得客戶端真實ip位址的方法二。
public string getipaddr(httpservletrequest request)
if(ip ==null ||0 ||unknown".equalsignorecase(ip))
if(ip ==null ||0 ||unknown".equalsignorecase(ip))
return ip;}
ICE 中服務端怎麼獲取客戶端的IP地址
客戶端的ip自動獲取,關鍵要看客戶端的ip是由誰來分配的,如果都是有isp提供的那麼伺服器利用ip去連線客戶端就不太可能。可以嘗試用下面兩種思路解決 1 能否讓客戶機主動連線伺服器。2 使用動態dns。讓每個客戶機都申請一個動態域名,無論它的ip怎樣變,當改變以後都會到dns伺服器進行註冊,然後伺服...
網頁服務端與客戶端的區別,伺服器端和客戶端有什麼區別?
網頁的程式 是執行在伺服器端的。也就是.cs檔案。所以要有伺服器端的控制元件。不然怎麼執行?客戶端的控制元件和伺服器端的是對應的,伺服器端的頁面傳送給客戶端後,就解析成了 對應的html 就是客戶端 的控制元件。伺服器端控制元件是伺服器來解析的,客戶端控制元件是由瀏覽器解析的。比如你要在後臺對一個t...
什麼叫服務端 和客戶端,伺服器端和客戶端有什麼區別
服務端,是為客戶端服務的。服務的內容諸如向客戶端提供資源,儲存客戶端資料。是實現遊戲特色化的重要途徑,也是最直接可以通過遊戲表現出來的技術。客戶端,或稱為使用者端,是指與伺服器相對應,為客戶提供本地服務的程式。除了一些只在本地執行的應用程式之外,一般安裝在普通的客戶機上,需要與服務端互相配合執行。一...