2010-12-15 6 views
0

システムのIPアドレスを取得するにはどうすればよいですか?私のシステムのIPアドレスを取得する方法

私は$ip_address=$_SERVER[REMOTE_ADDR];を使用していますが、システムのIPアドレスではなくローカルホストのIPアドレスを返します。

+0

http://www.suite101.com/content/socket-programming-gethostbyname-a19557 – InSane

+0

あなたのサーバーはあなたのローカルマシンで稼動していますか? ...それはあなたに同じIPアドレスを与えます。 – Beaker

+0

私はローカルネットワーク経由ではなくインターネットを経由してウェブサーバーにアクセスしています – Meena

答えて

2

ローカルサーバーにアクセスする場合、ローカルIPアドレスはリモートIPです。 PHPはあなたに正しい応答を与えています。

インターネットのIPアドレスを知りたい場合は、Googleにアクセスして「what is my ip」と入力します。

2

$_SERVER['SERVER_ADDR']

あなたは$_SERVERスーパーグローバルで見つけるかもしれないものの完全なリストについてはphp docsを参照してください。

+0

これは、サーバーアドレスに彼が探しているリモートアドイではない... – Beaker

+0

@Ginamin:OP *は*サーバーのアドレスを探しています*住所。それが彼のコードが期待しているアドレスを返さない理由です。 – Lee

+0

ええと...私は彼が遠隔地を探しているようだ。 「どうすれば私のシステムのIPアドレスを取得するのですか」と「しかし、私のシステムの代わりに私のlocalhostのIPアドレスを返す」私にはリモートアドレスを指しているようですが、心配はありません。彼は今ここで両方の答えを持っています:) – Beaker

1

この関数は、実際のIPアドレスを決定します:

function ipCheck() { 
    if (getenv('HTTP_CLIENT_IP')) { 
     $ip = getenv('HTTP_CLIENT_IP'); 
    } 
    elseif (getenv('HTTP_X_FORWARDED_FOR')) { 
     $ip = getenv('HTTP_X_FORWARDED_FOR'); 
    } 
    elseif (getenv('HTTP_X_FORWARDED')) { 
     $ip = getenv('HTTP_X_FORWARDED'); 
    } 
    elseif (getenv('HTTP_FORWARDED_FOR')) { 
     $ip = getenv('HTTP_FORWARDED_FOR'); 
    } 
    elseif (getenv('HTTP_FORWARDED')) { 
     $ip = getenv('HTTP_FORWARDED'); 
    } 
    else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 
    return $ip; 
} 
+0

私は自分のローカルサーバーにアクセスしていますので、サーバーのIPアドレスはsysytemのIPではなくなります。これを行う他の方法ですか? – Meena

0

返事が遅れを私はまだ誰かを助けることができるかもしれない願っています。私はプロジェクトのためのシステムのIPが必要だったので、私はすぐに正規表現を使用してカスタム関数を廃止しました。それはubuntu linuxで動作します(技術的にはLinuxのディストリビューション/バージョンで動作するはずです)。

function getLocalIp(){ 
    $output = shell_exec('/sbin/ifconfig');   
    preg_match("/inet?[[:space:]]?addr:([0-9.]+)/", $output, $matches); 
    if(isset($matches[1])) 
     $ip = $matches[1]; 
    else 
     $ip = 0; 
    return $ip; 
} 

それは必要です:

  • はもしくはshell_execを使用してシステムコールを行います。
  • 正規表現を使用して内部IPアドレスの値を検索します。

Windowsの場合と同様のものを作成したり、この機能の機能を向上させる場合は、コードを他の人と共有してください。

関連する問題