ホームページ >バックエンド開発 >PHPチュートリアル >php cli モードでサーバー IP を取得する_PHP チュートリアル

php cli モードでサーバー IP を取得する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:11:241461ブラウズ

(1) php cliメソッドを使用してサーバーIPを取得します


[php]
関数 getServerIp(){
$ss = exec('/sbin/ifconfig eth0 | sed -n 's/^ *.*addr:\([0-9.]\{7,\}\) .*$/\1/p'' 、$arr);
$ret = $arr[0]; 戻り $ret
}

関数getServerIp(){

$ss = exec('/sbin/ifconfig eth0 | sed -n 's/^ *.*addr:\([0-9.]\{7,\}\) .*$/\1/p'' 、$arr); $ret = $arr[0];
$ret を返します;
}

(2) php cgiモードでクライアントIPとサーバーIPを取得します


[php]

[php]
PHP 取得ゲスト端末とサーバーの IP アドレスの関数数写法は次のとおりです:
[code=Php width=600px]/**
* クライアント IP アドレスを取得します
* @戻り文字列
*/
関数 get_client_ip() {
    if(getenv('HTTP_CLIENT_IP')){
        $client_ip = getenv('HTTP_CLIENT_IP');  
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
        $client_ip = getenv('HTTP_X_FORWARDED_FOR');  
    elseif(getenv('REMOTE_ADDR')) {
        $client_ip = getenv('REMOTE_ADDR');  
    } その他 {
        $client_ip = $_SERVER['REMOTE_ADDR']; 
    }
    $client_ip を返します。  
}
/**
* サーバーのIPアドレスを取得します
* @戻り文字列
*/
関数 get_server_ip() {
    if (isset($_SERVER)) {
        if($_SERVER['SERVER_ADDR']) {
            $server_ip = $_SERVER['SERVER_ADDR'];  
        } その他 {
            $server_ip = $_SERVER['LOCAL_ADDR'];  
        }
    } その他 {
        $server_ip = getenv('SERVER_ADDR'); 
    }
    $server_ip を返します。  
}
[/コード]
ゲスト端末 IP 関連の变量
1. $_SERVER['REMOTE_ADDR']; ゲスト端末 IP は、ユーザーの IP である可能性もあれば、プロキシの IP である可能性もあります。  
2. $_SERVER['HTTP_CLIENT_IP']; 端末の IP は存在する可能性があり、プロキシが作成できます。  
3. $_SERVER['HTTP_X_FORWARDED_FOR']; ユーザは、1 つの IP で使用されるプロキシであり、存在する可能性があります。  
サーバー端末 IP 関連の量
1. $SERVER_NAME、関数gethostbyname() を使用して取得する必要があります。この変化量はサーバー側でもゲスト側でも正しく表示されるわけではありません。  
2. $HTTP_SERVER_VARS["SERVER_ADDR"]、サーバー側での検査:127.0.0.1 (これは httpd.conf 内の BindAddress の設定値に関連しています)。 ゲスト側での検査結果は正しいです。  
3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR']、テスト中、結果は何も得られませんでした (テスト環境 PHP5)。 完全な获得IPクラス
[code=Php width=600px]01./**   
02. * クライアント/サーバー IP を取得する
03. *
04. * @author Yaron (http://yaron.org.cn)
05. * @バージョン 0.1
06. * @package
07.*/
08.
09.class getIP{
10. 関数 clientIP(){
11. $cIP = getenv ( 'REMOTE_ADDR' );     
12. $cIP1 = getenv ( 'HTTP_X_FORWARDED_FOR' );     
13. $cIP2 = getenv ( 'HTTP_CLIENT_IP' );     
14. $cIP1 ?  $cIP = $cIP1 : null;     
15. $cIP2 ?  $cIP = $cIP2 : null;     
16. $cIP を返します。     
17. }
18. 関数 serverIP(){
19. return gethostbyname ( $_SERVER_NAME );     
20. }
21.}
22.
23.$getIP = new getIP();     
24.$clientIp = getIP::clientIP();     
25.$serverIp = getIP::serverIP();     
26.
27.echo 'クライアント IP は ' 、 $clientIp 、 '
' ;     
28.echo 'サーバー IP は ' 、 $serverIp 、 '
' ;   

PHP 取得ゲスト端末とサーバーの IP アドレスの関数写法は次のとおりです:
[code=Php width=600px]/**
* クライアント IP アドレスを取得します
* @戻り文字列
*/
関数 get_client_ip() {
    if(getenv('HTTP_CLIENT_IP')){
        $client_ip = getenv('HTTP_CLIENT_IP');
    elseif(getenv('HTTP_X_FORWARDED_FOR')) {
        $client_ip = getenv('HTTP_X_FORWARDED_FOR');
    elseif(getenv('REMOTE_ADDR')) {
        $client_ip = getenv('REMOTE_ADDR');
    } その他 {
        $client_ip = $_SERVER['REMOTE_ADDR'];
    }
    $client_ip を返します;
}
/**
* サーバーのIPアドレスを取得します
* @戻り文字列
*/
関数 get_server_ip() {
    if (isset($_SERVER)) {
        if($_SERVER['SERVER_ADDR']) {
            $server_ip = $_SERVER['SERVER_ADDR'];
        } その他 {
            $server_ip = $_SERVER['LOCAL_ADDR'];
        }
    } その他 {
        $server_ip = getenv('SERVER_ADDR');
    }
    $server_ip を返します;
}
[/コード]
ゲスト端末IP関連の量
1. $_SERVER['REMOTE_ADDR']; ゲスト端末 IP は、ユーザーの IP である可能性もあれば、プロキシの IP である可能性もあります。

2. $_SERVER['HTTP_CLIENT_IP']; 端末の IP は存在する可能性があり、プロキシが作成できます。

3. $_SERVER['HTTP_X_FORWARDED_FOR']; ユーザは、1 つの IP で使用されるプロキシであり、存在する可能性があります。

サーバー端末IP関連の量

1. $SERVER_NAME、関数 gethostbyname() を使用して取得する必要があります。この変化量はサーバー側でもゲスト側でも正しく表示されるわけではありません。

2. $HTTP_SERVER_VARS["SERVER_ADDR"]、サーバー側での検査:127.0.0.1 (これは httpd.conf 内の BindAddress の設定値に関連しています)。 ゲスト側での検査結果は正しいです。

3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR']、テスト中、結果は何も得られませんでした (テスト環境 PHP5)。 完全な获得IPクラス
[code=Php width=600px]01./**  

02. * クライアント/サーバー IP を取得する

03. *

04. * @author Yaron (http://yaron.org.cn)

05. * @version 0.1
06. * @package
07.*/
08.
09.class getIP{
10. 関数 clientIP(){
11. $cIP = getenv ( 'REMOTE_ADDR' );   
12. $cIP1 = getenv ( 'HTTP_X_FORWARDED_FOR' );   
13. $cIP2 = getenv ( 'HTTP_CLIENT_IP' );   
14. $cIP1 ?  $cIP = $cIP1 : null;   
15. $cIP2 ?  $cIP = $cIP2 : null;   
16. $cIP を返します。   
17. }
18. 関数 serverIP(){
19. return gethostbyname ( $_SERVER_NAME );   
20. }
21.}
22.
23.$getIP = new getIP();   
24.$clientIp = getIP::clientIP();   
25.$serverIp = getIP::serverIP();   
26.
27.echo 'クライアント IP は ' 、 $clientIp 、 '
' ;   
28.echo 'サーバー IP は ' 、 $serverIp 、 '
' ; 



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477381.html技術記事 (1) php cli モードでサーバー IP を取得する [php] function getServerIp(){ $ss = exec(/sbin/ifconfig eth0 | sed -n s/^ *.*addr:\([0-9.]\{ 7 ,\}\) .*$/\1/p,$arr); $ret = $arr[0];
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。