我用的这个CMS系统在模板中直接调用IP的标签是[!--infoip--]
这个模板可以直接用php代码,我试了直接<?phpinfo()?>可以执行。
地址位置小偷代码如下<?
$url='http://ip138.com/ips.asp?ip=[!--infoip--]';
$file=file_get_contents($url);eregi('<ul class="ul1">(.*)</ul>',$file,$rg);echo $rg[1],$ip?>
用这段代码,调用不出物理地址来,改为<?
$url='http://ip138.com/ips.asp?ip=[!--infoip--]';
$file=file_get_contents($url);eregi('<ul class="ul1">(.*)</ul>',$file,$rg);echo $url?>可以成功输出http://ip138.com/ips.asp?ip=60.191.153.61可见[!--infoip--]在这段php代码中也可以调用。将代码又改为<?
$url='http://ip138.com/ips.asp?ip=60.191.153.61';
$file=file_get_contents($url);eregi('<ul class="ul1">(.*)</ul>',$file,$rg);echo $rg[1],$ip?>
放入模板中,也可以得到想要的结果:“本站主数据:浙江省台州市 电信
参考数据一:浙江省台州市 电信
参考数据二:浙江省台州市 电信 ”唯独用标签时,就读不出来了,我这是哪里的问题,请帮忙分析一下,谢谢!

解决方案 »

  1.   

    [!--infoip--] 是模板使用的标签,不是php合法的标签!其实这个标签就是代号,主程序中是用类似这样的php代码替换了[!--infoip--]$temp = str_replace("[!--infoip--]", $post_excerpt, $temp);另外你这句末尾没有加分号,不知道你是怎么运行成功? echo $rg[1],$ip
    另外,我不知你说的php小偷是什么意思?
      

  2.   

    感谢zhouzb889,我说的php小偷,可能是表达不清楚,其主要做用就是根据我提供的IP地址,获取实际的地理位置,主要是
    “eregi('<ul class="ul1">(.*)</ul>',$file,$rg);”
    这一句。程序调取指定url页面中的指定内容,例如'http://ip138.com/ips.asp?ip=60.191.153.61'这个url页面包含这个IP地址的物理地址,我要“偷”的就是只要 指定的 地址位置 这部份内容。“[!--infoip--] 是模板使用的标签,不是php合法的标签! ”这一句我同意,但$url='http://ip138.com/ips.asp?ip=[!--infoip--]';
    $file=file_get_contents($url);eregi('<ul class="ul1">(.*)</ul>',$file,$rg);echo $url的确能输出 url=http://ip138.com/ips.asp?ip=60.191.153.61 说明[!--infoip--]的值'60.191.153.61 '能够被调用出来
      

  3.   

    这个问题很简单,你可以输出时因为,CMS模板解析系统把 [!--infoip--] 解析成 60.191.153.61,所以输出了.而
    <?
    $url='http://ip138.com/ips.asp?ip=[!--infoip--]';
    $file=file_get_contents($url);eregi('<ul class="ul1">(.*)</ul>',$file,$rg);echo $url?>
    $url 为经过CMS模板解析系统解析,这是值还是 http://ip138.com/ips.asp?ip=[!--infoip--] 而非 http://ip138.com/ips.asp?ip=60.191.153.61 所以不能取得你想要的数据想要实现ip找地理位置的功能,可以去网上下个相应的数据库
      

  4.   

    楼主你把标签[!--infoip--]单独提出来先作为一个变量试试,$IP = "[!--infoip--]";
    $url="http://ip138.com/ips.asp?ip=$IP";