論那些顯示對(duì)方ip信息的圖片是怎么制作的?

那些顯示對(duì)方ip信息的圖片是怎么制作的呢?今天就由我?guī)ьI(lǐng)著大家來(lái)制作一張吧,當(dāng)然這些可以很炫酷的簽名檔了,如果想特別定制的話(huà)可以私信我,本來(lái)是想在自己博客上提供一個(gè)網(wǎng)頁(yè)自動(dòng)生成一些選項(xiàng)的,但是本著 * 一切輸入都是有害的* 的原則,沒(méi)有做,見(jiàn)諒了。o( ̄▽?zhuān)?/em>)ゞ

之前逛貼吧,總是能夠看到很多很酷玄的簽名,就如下面這張雖然很簡(jiǎn)陋,例如顯示出你現(xiàn)在的位置啊,瀏覽器啦什么的。之前一直不知道是怎么弄得,后來(lái)發(fā)現(xiàn)原來(lái)php是可以搞定的。

'try'
'try'

圖片的地址.
其實(shí)這個(gè)圖片制作也是很簡(jiǎn)單的,下面是我的源碼,也可以參看Github
其中ip地址是可以采用PHP直接獲得的,然后地址查詢(xún)API是用的http://www.netimpact.com/ 提供的免費(fèi)服務(wù),每天只可查詢(xún)250次,所以可能后面的就會(huì)出現(xiàn)不了結(jié)果的狀況。

<?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);
?>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容