システムのIPアドレスを取得するにはどうすればよいですか?私のシステムのIPアドレスを取得する方法
私は$ip_address=$_SERVER[REMOTE_ADDR];
を使用していますが、システムのIPアドレスではなくローカルホストのIPアドレスを返します。
システムのIPアドレスを取得するにはどうすればよいですか?私のシステムのIPアドレスを取得する方法
私は$ip_address=$_SERVER[REMOTE_ADDR];
を使用していますが、システムのIPアドレスではなくローカルホストのIPアドレスを返します。
ローカルサーバーにアクセスする場合、ローカルIPアドレスはリモートIPです。 PHPはあなたに正しい応答を与えています。
インターネットのIPアドレスを知りたい場合は、Googleにアクセスして「what is my ip」と入力します。
$_SERVER['SERVER_ADDR']
あなたは$_SERVER
スーパーグローバルで見つけるかもしれないものの完全なリストについてはphp docsを参照してください。
この関数は、実際の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;
}
私は自分のローカルサーバーにアクセスしていますので、サーバーのIPアドレスはsysytemのIPではなくなります。これを行う他の方法ですか? – Meena
返事が遅れを私はまだ誰かを助けることができるかもしれない願っています。私はプロジェクトのためのシステムの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;
}
それは必要です:
Windowsの場合と同様のものを作成したり、この機能の機能を向上させる場合は、コードを他の人と共有してください。
http://www.suite101.com/content/socket-programming-gethostbyname-a19557 – InSane
あなたのサーバーはあなたのローカルマシンで稼動していますか? ...それはあなたに同じIPアドレスを与えます。 – Beaker
私はローカルネットワーク経由ではなくインターネットを経由してウェブサーバーにアクセスしています – Meena