查看完整版本 : 分享: 顯示 IP 的 php 程式碼
<?php
function get_client_ip()
{
if ($_SERVER['REMOTE_ADDR']) {
$cip = $_SERVER['REMOTE_ADDR'];
} elseif (getenv("REMOTE_ADDR")) {
$cip = getenv("REMOTE_ADDR");
} elseif (getenv("HTTP_CLIENT_IP")) {
$cip = getenv("HTTP_CLIENT_IP");
} else {
$cip = "unknown";
}
return $cip;
}
echo "".get_client_ip();
?>
例:左上目錄
http://formosa.com.tw/
mushroom
2014-02-21, 10:41 AM
補充一下顯示 IP 的 PERL 程式碼:
$ip = "$ENV{'REMOTE_ADDR'}";
print <<EOF;
$ip
EOF
例:右上位置
http://dict.tw
說明:
REMOTE_ADDR 的值是由 TCP connection 取得的,不能藉由偽造 HTTP header 改變,但是使用者可能藉由 proxy 連線,因此可能顯示的是 proxy 的 IP。
開版大的變數 HTTP_CLIENT_IP 是考慮到 proxy 的因素,甚至有人表示須考慮 HTTP_X_FORWARDED_FOR,我個人實測心得:各 proxy 版本眾多,有些強調匿名,因此這兩個變數未必可信。
而且這兩個變數是可以偽造的 (spoofing)。
你可以用這個 php 程式看到三個變數:
<?php
/** 顯示 3 種不同的 IP **/
echo 'HTTP_CLIENT_IP=' . $_SERVER['HTTP_CLIENT_IP'] . '<BR>';
echo 'HTTP_X_FORWARDED_FOR=' . $_SERVER['HTTP_X_FORWARDED_FOR'] . '<BR>';
echo 'REMOTE_ADDR=' . $_SERVER['REMOTE_ADDR'];
?>
yesky
2014-02-22, 04:55 AM
謝謝分享好東西 收下了~yes
這個更好
顯示這樣
您的IP:[1.168.238.123] 来自:台湾省 台北市中华电信 操作系统:Windows XP分辨率:1024*768 语言:zh-TW
浏览器:Chrome Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
http://ip.chinaz.com/
誰有辦法弄一個?
528168.com報答:XD::XD:~pighead~pighead
mushroom
2014-02-22, 03:20 PM
這個更好
顯示這樣
您的IP:[1.168.238.123] 来自:台湾省 台北市中华电信 操作系统:Windows XP分辨率:1024*768 语言:zh-TW
浏览器:Chrome Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
http://ip.chinaz.com/
誰有辦法弄一個?
528168.com報答:XD::XD:~pighead~pighead
IP 的部分,用 IP whois 去找出屬於 Hinet,自建資料庫把 Hinet 翻譯成台灣國、台灣省、台灣區隨你高興。
其他的都是 http header 的資料,請參閱 PHP 官網說明:
http://tw.php.net/getallheaders
IP 的部分,用 IP whois 去找出屬於 Hinet,自建資料庫把 Hinet 翻譯成台灣國、台灣省、台灣區隨你高興。
其他的都是 http header 的資料,請參閱 PHP 官網說明:
http://tw.php.net/getallheaders
我是想要這樣功能的網頁
網友進入後
自動會顯示資料來~yes
我完全是門外漢
只會剪剪貼貼
mushroom
2014-02-23, 12:37 AM
這只是用 php 印出變數的功能,php 官網有說明:
(請注意 Examples 內,有你要的程式範例。)
http://www.php.net/manual/en/function.get-browser.php
http://www.php.net/manual/en/function.apache-request-headers.php
要切記,這些變數都是可以偽造的,所以只能印出來玩玩,不能做為資安的依據。
nokoya
2014-08-21, 05:50 PM
完整版 (10個字元)
function getIP() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) return getenv("HTTP_CLIENT_IP");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) return getenv("REMOTE_ADDR");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) return getenv("HTTP_X_FORWARDED_FOR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) return $_SERVER['REMOTE_ADDR'];
else {
$ip = "unknown";
return $ip;
}
}
完整版 (10個字元)
function getIP() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) return getenv("HTTP_CLIENT_IP");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) return getenv("REMOTE_ADDR");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) return getenv("HTTP_X_FORWARDED_FOR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) return $_SERVER['REMOTE_ADDR'];
else {
$ip = "unknown";
return $ip;
}
}
很抱歉。。。該域名已經賣掉了
nokoya
2014-08-22, 12:15 AM
很抱歉。。。該域名已經賣掉了
這跟域名有什麼關聯喔?
vBulletin® v3.8.4,版權所有 ©2000-2026,Jelsoft Enterprises Ltd.