【問題】抓瀏覽網頁的IP

顯示結果從第 1 筆 到 6 筆,共計 6 筆
  1. #1
    會員
    註冊日期
    2006-07-03
    所在地區
    ADSL 2M/256
    討論區文章
    8

    【問題】抓瀏覽網頁的IP

    各位大大好
    小弟自己用LINUX MANDRAKE 9.2 AND WEB SERVER
    然後我用一台主機架NAT伺服器用2張網路卡
    eth0 對內
    eht1 對外
    問題是我要在WEB SERVER上面要抓CLIENT的IP時老是抓到192.168.1.1
    我用 APACHE + PHP

    我的iptables 的設定是
    -iptables -t -nat -A PREROUTING -p -tcp -d 外部IP --dport 80 -j DNAT --to-destination 網頁伺服器IP:80
    -iptables -t -nat -A POSTROUTING -d 網頁伺服器IP -p -tcp --dport 80 -j SNAT --to 192.168.1.1

    我有試過把 192.168.1.1 改成 防火牆外部 IP
    改完之後 網頁的IP變成抓到防火牆的

    請問要如何在這個環境抓到對方的IP



  2. #2
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817

    回覆: 【問題】抓瀏覽網頁的IP

    可試看看改變 php 偵測 IP 語法

    if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
    if ($_SERVER["HTTP_CLIENT_IP"]) {
    $proxy = $_SERVER["HTTP_CLIENT_IP"];
    } else {
    $proxy = $_SERVER["REMOTE_ADDR"];
    }
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } else {
    if ($_SERVER["HTTP_CLIENT_IP"]) {
    $ip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
    $ip = $_SERVER["REMOTE_ADDR"];
    }
    }
    echo "Your IP $ip";
    if (isset($proxy)) {
    echo "Your proxy IP is $proxy";
    }
    Another php 語法
    $iipp=$_SERVER["REMOTE_ADDR"];
    echo $iipp;
    ?>

    ///////////////////////////////////////////////

    $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
    $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

    echo $user_IP;
    ?>

    ///////////////////////////////////////////////

    function get_real_ip(){
    $ip=false;
    if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    for ($i = 0; $i < count($ips); $i++) {
    if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
    $ip = $ips[$i];
    break;
    }
    }
    }
    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    }

    echo get_real_ip();
    ?>

    ///////////////////////////////////////////////

    //php獲取ip的算法
    if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
    {
    $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    }
    elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
    {
    $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
    }
    elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
    {
    $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    }
    elseif (getenv("HTTP_X_FORWARDED_FOR"))
    {
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    }
    elseif (getenv("HTTP_CLIENT_IP"))
    {
    $ip = getenv("HTTP_CLIENT_IP");
    }
    elseif (getenv("REMOTE_ADDR"))
    {
    $ip = getenv("REMOTE_ADDR");
    }
    else
    {
    $ip = "Unknown";
    }
    echo "你的IP:".$ip ;
    ?>

    ///////////////////////////////////////////////

    if(getenv('HTTP_CLIENT_IP')) {
    $onlineip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
    $onlineip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR')) {
    $onlineip = getenv('REMOTE_ADDR');
    } else {
    $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
    }
    echo $onlineip;
    ?>

  3. #3
    會員 CrownJJ 的大頭照
    註冊日期
    2001-12-03
    討論區文章
    56

    回覆: 【問題】抓瀏覽網頁的IP

    這裏先假設你的NAT的內部ip為 192.168.1.1
    因為你設了二條類似的 iptables rule,而在第二條中作了 SNAT
    意即把送往網頁伺服器的封包中,將 source ip 都改成了 192.168.1.1
    所以 apache 或 php 怎麼抓都會是 192.168.1.1

    改一下看看:
    ● 確定你的 nat 設定正確(打開了 ip_forward、有加上 MASQUERADE)
    即nat內部的電腦可透過 nat 連上網路
    ● 拿掉你的第二條 iptables rule

    然後再從外部 client 連進 web,再看看 apache 抓到的 client ip 是否正確?

  4. #4
    會員
    註冊日期
    2006-07-03
    所在地區
    ADSL 2M/256
    討論區文章
    8

    回覆: 【問題】抓瀏覽網頁的IP

    引用 作者:CrownJJ 瀏覽文章
    這裏先假設你的NAT的內部ip為 192.168.1.1
    因為你設了二條類似的 iptables rule,而在第二條中作了 SNAT
    意即把送往網頁伺服器的封包中,將 source ip 都改成了 192.168.1.1
    所以 apache 或 php 怎麼抓都會是 192.168.1.1

    改一下看看:
    ● 確定你的 nat 設定正確(打開了 ip_forward、有加上 MASQUERADE)
    即nat內部的電腦可透過 nat 連上網路
    ● 拿掉你的第二條 iptables rule

    然後再從外部 client 連進 web,再看看 apache 抓到的 client ip 是否正確?
    #########
    您第一種的方法我已經確認是正常的 MASQUERADE 跟 IPFORWARD一定要開的 內部才能上網
    然後第2種方法如果把 iptables 的第二個拿掉 WEB server會連不上 因為外面連進來了但是風包送不出去 所以WEB伺服器無法開啟網頁

    謝謝各位大大的回答 我繼續努力 如果有人有這個經驗麻煩在分享哦 感恩

  5. #5
    會員
    註冊日期
    2006-10-23
    所在地區
    8M/640
    討論區文章
    22

    回覆: 【問題】抓瀏覽網頁的IP

    的確是iptables的問題~
    第二條規則就是把人家的IP都改成192.168.1.1
    所以第二條規則的確是要除去的
    然後你要確定你的web server的default route
    方便的話show一下吧



  6. #6
    會員
    註冊日期
    2006-07-03
    所在地區
    ADSL 2M/256
    討論區文章
    8

    回覆: 【問題】抓瀏覽網頁的IP

    這是我防火牆的 route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
    XX.248.XX.0 * 255.255.255.0 U 0 0 0 eth1
    127.0.0.0 * 255.0.0.0 U 0 0 0 lo
    default XX.248.XX.254 0.0.0.0 UG 0 0 0 eth1
    ^^^^^^^^^Hinet 的固定IP gateway

    我的 web_server default gateway 是 192.168.1.1
    此文章於 2007-06-04 10:42 AM 被 blankgenius 編輯。

類似的主題

  1. PDA瀏覽網頁的問題~~
    作者:aup3cjo4 所在討論版:-- NB 筆記型電腦 & PDA 討 論 版
    回覆: 2
    最後發表: 2004-11-04, 11:12 PM
  2. 【求助】請問瀏覽網頁的問題?
    作者:seady 所在討論版:-- 網 路 技 術 版
    回覆: 1
    最後發表: 2004-05-01, 04:29 PM
  3. 【求助】瀏覽網頁的問題
    作者:man080 所在討論版:-- 網 路 軟 體 討 論 一 版 (Browser,Email
    回覆: 2
    最後發表: 2002-08-21, 04:07 PM
  4. [技巧] 瀏覽網頁的快速鍵
    作者:iget 所在討論版:-- 網 路 軟 體 討 論 一 版 (Browser,Email
    回覆: 10
    最後發表: 2002-02-22, 09:50 PM
  5. [技巧] 瀏覽網頁的快速鍵
    作者:iget 所在討論版:---- 電 腦 / 網 路 軟 體 精 華 區
    回覆: 4
    最後發表: 2001-09-17, 01:12 AM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •