最近在公司做的电影网站,因为有多个小区接入,每个小区电影网站的IP都不同现在想做一个可以从公网访问的PHP页 判断内网IP后 分别跳转到指定的地址这样应该怎么做呢? 谢谢各位朋友赐教:)

解决方案 »

  1.   

    得到客戶端的IP地址,分析來自哪個小區。然后跳轉到相應地址
    百度:客户端 php ip
      

  2.   

    刚才查了一下资料,我现在的是这样的架设IP是在192.168.189.2-192.168.189.254
    就访问www.sohu.com
    不是则访问www.sina.com.cn测试的时候 我发现我不管IP是多少都访问www.sina.com.cn
    还有一个问题,如果要做多个IP判断分别跳转,下面应该怎么写?
    谢谢各位。。<?php
    $curIP = $_SERVER['REMOTE_ADDR'];
    if (strcmp($curIP, "192.168.189.2") >= 0 && strcmp($curIP, "192.168.189.254") <= 0)
       header("Location: http://www.sohu.com/");
    else
       header("Location: http://www.sina.com.cn/");
    ?>
      

  3.   

    strcmp是字符串比较,好像192.168.189.3比192.168.189.254大啊,你可以把ip都用ip2long转为数字再比较,或者都去IP最后一段进行比较。
    分多个段可以再加elseif啊
      

  4.   

    if (ip2long($curIP) >= ip2long("192.168.189.2") && ip2long($curIP) <= ip2long("192.168.189.254")) 
      

  5.   

    T--T 谢谢各位朋友的热心帮助现在能力有限,不知道该怎么做了按照5楼的朋友的做法修改了那一行,发现我的IP还是跳转到新浪。。我再研究研究吧。。哪位朋友有空,能帮我做一个示例,感激不尽:)谢谢。。
      

  6.   

    经过刚才的测试,我发现我们公司走的线路有两条14条线路合并成三条,两条光纤,一条ADSL所以在IP138查询IP的时候是ADSL的公网IP,但我用PHP获取的IP是光纤线路的IP已经能够判断,但是怎样才能直接获取本地的内网IP判断内网IP来识别跳转呢??^_^
      

  7.   

    首先确定是否正确取到IP,IP138当然显示是你公网IP了,你的服务器若在内网获取IP就应该是内网IP.先给你个我用的取IP function.function get_user_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'];
    }
    return $onlineip;
    }ip2long比较已经可以解决你的问题,仔细测试。别外再给你提供个思路,就是explode IP后就比较前两段也可以的。即192和168。