论那些显示对方ip信息的图片是怎么制作的?

作者: momo李 | 来源:发表于2015-01-25 06:30 被阅读723次

    那些显示对方ip信息的图片是怎么制作的呢?今天就由我带领着大家来制作一张吧,当然这些可以很炫酷的签名档了,如果想特别定制的话可以私信我,本来是想在自己博客上提供一个网页自动生成一些选项的,但是本着 * 一切输入都是有害的* 的原则,没有做,见谅了。o( ̄▽ ̄)ゞ

    之前逛贴吧,总是能够看到很多很酷玄的签名,就如下面这张虽然很简陋,例如显示出你现在的位置啊,浏览器啦什么的。之前一直不知道是怎么弄得,后来发现原来php是可以搞定的。

    'try''try'
    图片的地址.
    其实这个图片制作也是很简单的,下面是我的源码,也可以参看Github
    其中ip地址是可以采用PHP直接获得的,然后地址查询API是用的http://www.netimpact.com/ 提供的免费服务,每天只可查询250次,所以可能后面的就会出现不了结果的状况。
    <?php
    /*
     *echo "hello";
     */
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $bname = 'Unknown';
    $platform = 'Unknown';
    $version = '';
    if (preg_match('/linux/i', $u_agent)){
        $platform = 'Linux';
    }
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)){
        $platform = 'mac';
    }
    elseif (preg_match('/windows|win32/i', $u_agent)){
        $platform = 'windows';
    }
    if(preg_match('/MSIE/i', $u_agent)&&!preg_match('/Opera/i', $u_agent))
    {
        $bname = 'Internet Explorer';
        $ub = 'MSIE';
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $bname = 'Mozilla Firefox';
        $ub = 'Firefox';
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $bname = 'Google Chrome';
        $ub = 'Chrome';
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $bname = 'Apple Safari';
        $ub = 'Safari';
    }
    elseif(preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Opera';
        $ub = 'Opera';
    }
    $known = array('Version', $ub, 'other');
    $pattern = '#(?<browser>'.join('|', $known).')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
    
    }
    
    $i = count($matches['browser']);
    if ($i != 1) {
        if (strripos($u_agent, "Version") < strripos($u_agent,$ub)){
        $version = $matches['version'][0];
        }
        else {
        $version = $matches['version'][1];
        }
    }
    else {
        $version = $matches['version'][0];
    }
    if($version == null || $version=="") {
        $version="?";
    }
    $ua = [
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'platform'  => $platform,
        'pattern'   => $pattern
    ];
    
    $browser = "Your browser: ".$ua['name']." ".$ua['version']." on ".$ua['platform'];
    $img_number = imagecreate(850,60);
    $backcolor = imagecolorallocate($img_number,125,185,222);
    $textcolor = imagecolorallocate($img_number,255,255,255);
    
    imagefill($img_number,0,0,$backcolor);
    
    
    $agent=$_SERVER['HTTP_USER_AGENT'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $host_name = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $url = "http://api.netimpact.com/qv1.php?key=uiWMSWCvUGimIahk&qt=geoip&d=json&q=$ip";
    $d = file_get_contents($url);
    $details = json_decode($d);
    $data = explode(',' , $d);
    $info = array(
        'country_code' => $data[6] ,
        'country_name' => $data[2] ,
        'region_name' => $data[1] ,
        'city' => $data[0] ,
        'latitude' => $data[4] ,
        'longitude' => $data[5] ,
        'isp' => $data[3] ,
    );
    $messages = "Dear friends from $data[0], $data[1], $data[2]($data[4], $data[5]).";
    $message2 = "Using $agent";
    $time = date('Y-m-d H:i:s');
    Imagestring($img_number,10,5,0,$messages,$textcolor);
    Imagestring($img_number,10,5,20,$browser,$textcolor);
    Imagestring($img_number,10,5,40,$time,$textcolor);
    
    header("Content-type: image/jpeg");
    imagejpeg($img_number);
    ?>

    相关文章

      网友评论

      • momo李:@安详得像个疯子 这个。。。我也不知道,不过也可以算前端的一部分吧。例如在页脚显示一个内容或者像v2ex一样有个专门的查IP的页面。
      • momo李:@impre 嗯。没什么难的地方。很简单
      • 9c4ed4f60e43:一系列的获取判断。。

      本文标题:论那些显示对方ip信息的图片是怎么制作的?

      本文链接:https://www.haomeiwen.com/subject/spkkxttx.html