網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   電腦網路相關技術 (https://www.domainclub.org/forumdisplay.php?f=16)
-   -   分享: 顯示 IP 的 php 程式碼 (https://www.domainclub.org/showthread.php?t=36142)

668 2014-02-20 07:48 PM

分享: 顯示 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

668 2014-02-22 08:38 AM

這個更好
顯示這樣

您的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

引用:

作者: 668 (文章 190278)
這個更好
顯示這樣

您的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

668 2014-02-22 03:36 PM

引用:

作者: mushroom (文章 190282)
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/functio...st-headers.php
要切記,這些變數都是可以偽造的,所以只能印出來玩玩,不能做為資安的依據。

nokoya 2014-08-21 05:50 PM

完整版 (10個字元)

PHP 代碼:

   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;
      } 
    } 


668 2014-08-21 09:46 PM

引用:

作者: nokoya (文章 193265)
完整版 (10個字元)

PHP 代碼:

   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

引用:

作者: 668 (文章 193268)
很抱歉。。。該域名已經賣掉了

這跟域名有什麼關聯喔?


所有時間均為 +8。現在的時間是 08:08 AM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.