MENU

PHP之爬页面数据-站长之家服务器IP信息查询

• July 30, 2019 • Read: 793 • 经验分享,原创作品阅读设置

前言:

今天在站长之家里面查了一下我的服务器信息,感觉下面显示的信息挺不错的想做成接口用,话不多说开搞!
PHP之爬页面数据-站长之家服务器IP查询
可以用file_get_contents或者curl取网页数据,我这里为了方便使用的file_get_contents,建议使用curl

思路

取到页面数据以后使用preg_match_all函数执行全局正则表达式匹配,得到的是数组,然后使用array_unique函数把数组里面重复的数据给去掉,现在只剩一个数组

$str = file_get_contents("http://ip.tool.chinaz.com/".$_GET['url']);
preg_match_all("/<span (.*?)>(.*?)<\/span>/ism", $str, $matches)  ;
$arr = array_unique($matches);

我们会发现数据里面包含了正则以后的span标签,写个方法搞定它。

function span($str){
    $result = substr($str,strripos($str,"0\">")+3);
    $result = substr($result,0,strrpos($result,"</span>"));
    return $result;
}

这样数组里面的值就不会含有标签了。这样接口到这里就已经结束了。

完整实例代码:

<?php
/**
 * 2019年7月30日19:03:10
 * author:教书先生
 * QQ:599928887
 * Explain:查询服务器IP所在信息
 * Usage method:index.php?url=blog.oioweb.cn
 */
header('Access-Control-Allow-Origin:*');
header('Content-type: application/json');
error_reporting(0);
!empty($_GET['url']) ? $_GET['url'] : exit(json_encode([
    "code"=>-1,
    "msg"=>"请输入网址!"
],JSON_UNESCAPED_UNICODE));
function span($str){
    $result = substr($str,strripos($str,"0\">")+3);
    $result = substr($result,0,strrpos($result,"</span>"));
    return $result;
}
$str = file_get_contents("http://ip.tool.chinaz.com/".$_GET['url']);
preg_match_all("/<span (.*?)>(.*?)<\/span>/ism", $str, $matches)  ;
$arr = array_unique($matches);
if (span($arr[0][7])==""){
    $arr = [
        "code"=>-1,
        "msg"=>"查询失败!"
    ];
}else{
    $arr = [
        "code"=>1,
        "msg"=>"ok",
        "host"=>span($arr[0][6]),
        "ip"=>span($arr[0][7]),
        "position"=>span($arr[0][9])  
    ];
}
exit(json_encode($arr,JSON_UNESCAPED_UNICODE));

使用方法:

index.php?url=blog.oioweb.cn

你愿意给手艺人点个赞吗,传播正能量!

Last Modified: August 20, 2019
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

4 Comments
  1. 服务器IP暴露了@(滑稽)

    1. @楓の街我一直都是裸的@(你懂的)

  2. 哦呀呀呀,看我发现了什么!#(邪恶)

    1. @东方幻梦多来看看呀