導航:首頁 > 編程語言 > php獲得客戶端信息

php獲得客戶端信息

發布時間:2023-03-12 17:08:57

Ⅰ 如何獲取php客戶端及伺服器端IP了

客戶端的ip變數:
$_SERVER['REMOTE_ADDR'] :客戶端IP,也有可能是代理IP
$_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能偽造
$_SERVER['HTTP_X_FORWARD_FOR'] :用戶在哪個ip上使用的id,可能存在,也可能偽造
服務端的ip變數:
$_SERVER['SERVER_NAME'] :需要使用函數gethostname()來獲得,這個無論是伺服器端還是客戶端都能正常顯示。
$_SERVER['SERVER_ADDR']:伺服器端的ip地址,在伺服器端測試ip地址,在客戶端測試正常
getnev 獲得系統的環境變數:

Ⅱ 如何使用PHP獲取客戶端及伺服器端IP的封裝類

本文實例講述了PHP獲取客戶端及伺服器端IP的封裝類。分享給大家供大家參考,具體如下:
客戶端IP相關的變數:
1. $_SERVER['REMOTE_ADDR']; 客戶端IP,有可能是用戶的IP,也有可能是代理的IP。
2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可偽造。
3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用戶是在哪個IP使用的代理,可能存在,可以偽造。
伺服器端IP相關的變數:
1. $_SERVER["SERVER_NAME"],需要使用函數gethostbyname()獲得。這個變數無論在伺服器端還是客戶端均能正確顯示。
2. $_SERVER["SERVER_ADDR"],在伺服器端測試:127.0.0.1(這個與httpd.conf中BindAddress的設置值相關)。在客戶端測試結果正確。
類如下:

class getIP{
function clientIP(){
$cIP = getenv('REMOTE_ADDR');
$cIP1 = getenv('HTTP_X_FORWARDED_FOR');
$cIP2 = getenv('HTTP_CLIENT_IP');
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
}
function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]);
}
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();
echo 'Client IP is ',$clientIp,'<br />';
echo 'Server IP is ',$serverIp,'<br />';

Ⅲ PHP 可以獲取客戶端哪些訪問信息

<?php
echo"<br>".$_SERVER['PHP_SELF'];#當前正在執行腳本的文件名,與documentroot相關
echo"<br>".$_SERVER['argv'];#傳遞給該腳本的參數。
echo"<br>".$_SERVER['argc'];#包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
echo"<br>".$_SERVER['GATEWAY_INTERFACE'];#伺服器使用的CGI規范的版本。例如,「CGI/1.1」。
echo"<br>".$_SERVER['SERVER_NAME'];#當前運行腳本所在伺服器主機的名稱。
echo"<br>".$_SERVER['SERVER_SOFTWARE'];#伺服器標識的字串,在響應請求時的頭部中給出。
echo"<br>".$_SERVER['SERVER_PROTOCOL'];#請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
echo"<br>".$_SERVER['REQUEST_METHOD'];#訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
echo"<br>".$_SERVER['QUERY_STRING'];#查詢(query)的字元串。
echo"<br>".$_SERVER['DOCUMENT_ROOT'];#當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
echo"<br>".$_SERVER['HTTP_ACCEPT'];#當前請求的Accept:頭部的內容。
echo"<br>".$_SERVER['HTTP_ACCEPT_CHARSET'];#當前請求的Accept-Charset:頭部的內容。例如:「iso-8859-1,*,utf-8」。
echo"<br>".$_SERVER['HTTP_ACCEPT_ENCODING'];#當前請求的Accept-Encoding:頭部的內容。例如:「gzip」。
echo"<br>".$_SERVER['HTTP_ACCEPT_LANGUAGE'];#當前請求的Accept-Language:頭部的內容。例如:「en」。
echo"<br>".$_SERVER['HTTP_CONNECTION'];#當前請求的Connection:頭部的內容。例如:「Keep-Alive」。
echo"<br>".$_SERVER['HTTP_HOST'];#當前請求的Host:頭部的內容。
echo"<br>".$_SERVER['HTTP_REFERER'];#鏈接到當前頁面的前一頁面的URL地址。
echo"<br>".$_SERVER['HTTP_USER_AGENT'];#當前請求的User_Agent:頭部的內容。
echo"<br>".$_SERVER['HTTPS'];#—如果通過https訪問,則被設為一個非空的值(on),否則返回off
echo"<br>".$_SERVER['REMOTE_ADDR'];#正在瀏覽當前頁面用戶的IP地址。
echo"<br>".$_SERVER['REMOTE_HOST'];#正在瀏覽當前頁面用戶的主機名。
echo"<br>".$_SERVER['REMOTE_PORT'];#用戶連接到伺服器時所使用的埠。
echo"<br>".$_SERVER['SCRIPT_FILENAME'];#當前執行腳本的絕對路徑名。
echo"<br>".$_SERVER['SERVER_ADMIN'];#管理員信息
echo"<br>".$_SERVER['SERVER_PORT'];#伺服器所使用的埠
echo"<br>".$_SERVER['SERVER_SIGNATURE'];#包含伺服器版本和虛擬主機名的字元串。
echo"<br>".$_SERVER['PATH_TRANSLATED'];#當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
echo"<br>".$_SERVER['SCRIPT_NAME'];#包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
echo"<br>".$_SERVER['REQUEST_URI'];#訪問此頁面所需的URI。例如,「/index.html」。
echo"<br>".$_SERVER['PHP_AUTH_USER'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的用戶名。
echo"<br>".$_SERVER['PHP_AUTH_PW'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的密碼。
echo"<br>".$_SERVER['AUTH_TYPE'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是認證的類型。
?>

Ⅳ php 如何獲取 客戶端http header

<?php
$dir=$HTTP_GET_VARS["dir"];//.......取得上個頁面傳遞來的路徑
$file=$HTTP_GET_VARS["file"];//.......取得傳遞來的文件名
$url=parse_url($HTTP_REFERER);/*......取得前一頁面的URL地址,並將其放入一個數組中*/
if($url[host]!=$HTTP_HOST){echo"要下載本軟體請到<ahref=http://www.df365.org>東方小屋</a>";exit;}/*檢查來源網站是不是自己的網站,如果不是,返回「要下載本……」*/
if(empty($dir))$dir="/";//......如果路徑名為空,則為指定根目錄
if(empty($file)){echo"未指定要下載的文件!";exit;}/*如果文件名為空,返回「未指定……」*/
$rootdir="文件存放的根目錄";//......你的下載路徑根目錄
$realurl=$rootdir.$dir;//.......取得你的下載目錄
chdir($realurl);//......將當前目錄轉到下載目錄中
if(!file_exists($file)){echo"對不起,此鏈接已經失效,請在下載頁面上向我們報告,謝謝!";exit;}//......測試文件是否存在
$filename=$file;
//發送文件頭信息
header("Cache-control:private");//fixforIE
header("Content-Type:application/octet-stream");
header("Content-Length:".filesize($filename));
header("Content-Disposition:attachment;filename=$filename");
$fp=fopen($filename,'r');//以讀取方式打開指定文件
fpassthru($fp);//**CORRECT**以二進制方式讀取文件
fclose($fp);//關閉文件
?>

Ⅳ jsp中request.getHeader()獲取客戶端的各種信息,那php中什麼方法來獲取

伺服器變數 $_SERVER 詳解:

1、$_SESSION['PHP_SELF'] -- 獲取當前正在執行腳本的文件名

2、$_SERVER['SERVER_PROTOCOL'] -- 請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。

3、$_SERVER['REQUEST_TIME'] -- 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。

4、$_SERVER['argv'] -- 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他賦值。

5、$_SERVER['SERVER_NAME'] -- 返回當前主機名。

6、$_SERVER['SERVER_SOFTWARE'] -- 伺服器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0

7、$_SERVER['REQUEST_METHOD'] -- 訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。

8、$_SERVER['QUERY_STRING'] -- 查詢(query)的字元串(URL 中第一個問號 ? 之後的內容)。

9、$_SERVER['DOCUMENT_ROOT'] -- 當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。 如E:\server

10、$_SERVER['HTTP_ACCEPT'] -- 當前請求的 Accept: 頭信息的內容。

11、$_SERVER['HTTP_ACCEPT_CHARSET'] -- 當前請求的 Accept-Charset: 頭信息的內容。例如:「iso-8859-1,*,utf-8」。

12、$_SERVER['HTTP_ACCEPT_ENCODING'] -- 當前請求的 Accept-Encoding: 頭信息的內容。例如:「gzip」。

13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] -- 當前請求的 Accept-Language: 頭信息的內容。例如:「en」。

14、$_SERVER['HTTP_CONNECTION'] -- 當前請求的 Connection: 頭信息的內容。例如:「Keep-Alive」。

15、$_SERVER['HTTP_HOST'] -- 當前請求的 Host: 頭信息的內容。

16、$_SERVER['HTTP_REFERER'] -- 鏈接到當前頁面的前一頁面的 URL 地址。

17、$_SERVER['HTTP_USER_AGENT'] -- 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。

18、$_SERVER['HTTPS'] -- 如果通過https訪問,則被設為一個非空的值,否則返回off.

19、$_SERVER['REMOTE_ADDR'] -- 正在瀏覽當前頁面用戶的 IP 地址。

20、$_SERVER['REMOTE_HOST'] -- 正在瀏覽當前頁面用戶的主機名。反向域名解析基於該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1

21、$_SERVER['REMOTE_PORT'] -- 用戶連接到伺服器時所使用的埠。我在本機測試沒通過,不知道什麼原因。

22、$_SERVER['SCRIPT_FILENAME'] -- 當前執行腳本的絕對路徑名。如返回E:\server\index.php

23、$_SERVER['SERVER_ADMIN'] -- 該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值

24、$_SERVER['SERVER_PORT'] -- 伺服器所使用的埠。默認為「80」。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 埠。

25、$_SERVER['SERVER_SIGNATURE'] -- 包含伺服器版本和虛擬主機名的字元串。

26、$_SERVER['PATH_TRANSLATED'] -- 當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。

27、$_SERVER['SCRIPT_NAME'] -- 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。

28、$_SERVER['REQUEST_URI'] -- 訪問此頁面所需的 URI。例如,「/index.html」。

29、$_SERVER['PHP_AUTH_DIGEST'] -- 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變數被設置成客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。

30、$_SERVER['PHP_AUTH_USER']-- 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。

31、$_SERVER['PHP_AUTH_PW'] -- 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。

32、$_SERVER['AUTH_TYPE']--當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。

Ⅵ php獲得客戶端的ip和埠號

$_SERVER['REMOTE_PORT'];//埠號
$_SERVER['SERVER_ADDR'];//ip

//補充
$_SERVER['HTTP_CLIENT_IP'];//代理端的(有可能存在,可偽造)
$_SERVER['HTTP_X_FORWARDED_FOR'];//用戶是在哪個IP使用的代理(有可能存在,也可以偽造)

Ⅶ php用socket獲得客戶端的ip和埠

socket_getpeername() 獲取遠程類似主機的ip地址
socket_getsockname() 獲取本地socket的ip地址
怎麼感覺你用的實際上是對的,難道用nginx一類的負載均衡伺服器了

閱讀全文

與php獲得客戶端信息相關的資料

熱點內容
逆拓撲排序演算法描述 瀏覽:586
如何遠程鏈接到linux伺服器地址 瀏覽:628
抹茶app支付方式怎麼選 瀏覽:554
獵人寶寶攻擊命令 瀏覽:159
操作系統是編譯原理嗎 瀏覽:646
雲伺服器遷移後 瀏覽:260
excel格式轉換pdf 瀏覽:987
登錄器一般存在哪個文件夾 瀏覽:535
中興光貓機器碼演算法 瀏覽:330
android響應時間測試 瀏覽:940
java編程思想第四版答案 瀏覽:888
如何對nbt編程 瀏覽:885
mscpdf 瀏覽:948
文件夾d盤突然0位元組可用 瀏覽:272
吃火腿腸的解壓場面 瀏覽:339
衛星鍋加密教程 瀏覽:792
php7的特性是什麼 瀏覽:469
編譯類高級語言源代碼運行過程 瀏覽:177
科普中國app怎麼分享 瀏覽:87
51單片機與32單片機比較 瀏覽:422