签名图片上显示IP的几例应用

时间:2007-08-04 12:39:17   来源:凌波飞龙  作者:  点击:次  出处:技术无忧
关键字:gd 签名图片 IP

例一

第一步,复制以下代码,另存为ip.php

 <?php
/*
function:显示ip
转载自www.student163.com
*/
Header("Content-type: image/PNG"); 
$im = imagecreate(150,20);//生成IP图片
$white = ImageColorAllocate($im, 255,255,255); //背景颜色
$color = imagecolorallocate($im, 255, 180, 37); //文字颜色
imagefill($im,0,0,$white);
imagestring($im,5,2,2,"[".$REMOTE_ADDR."]",$color);
ImagePNG($im);
ImageDestroy($im);

?>

第二步,上传到支持php的空间
第三步,在签名档中输入ip.php文件的地址,应用如:

BBS中[img]http://demoip.student163.com/ip.php[/img]
网页中<img src=http://demoip.student163.com/ip.php>
例二

第一步,复制以下代码,另存为ipcover.php

 <?/*
Function: Show your IP in image
Nov 14,2005

参考Internet上的教程,修改制作

-Freeware-
*/
if(!function_exists('imagetypes')) die("ERROR: GD LIB IS NOT LOADED!");

header("Content-type: image/png");

 

/*=================*/

$im = @imagecreatefrompng ("test.png");//读取图片名

$color = imagecolorallocate($im, 183, 150, 37); //文字颜色


imagestring($im,3,125,44,"[ From ".$_SERVER["REMOTE_ADDR"]." / ".show_system()." / ".show_browser()." ]",$color); //($im,字大小,左右,上下)
//imagestring($im,3,72,26,"[".show_system()." / ".show_browser()."]",$color);
imagepng($im);
imagedestroy($im);

function show_browser(){
$b = $_SERVER['HTTP_USER_AGENT'];
$ie50 = preg_match("/IE 5.0/i", $b);
$ie55 = preg_match("/IE 5.5/i", $b);
$ie60 = preg_match("/IE 6.0/i", $b);
$opera = preg_match("/Opera/i", $b);
if ($ie40 == 1) {
$browser = "Ie 4.0";
} else if ($ie50 == 1) {
$browser = "IE 5.0";
} else if ($ie55 == 1) {
$browser = "IE 5.5";
} else if ($ie60 == 1) {
$browser = "IE 6.0";
} else if ($opera == 1) {
$browser = "Opera";
} else {
$browser = "n/a";
}
return($browser);
}

function show_system(){
$so = $_SERVER['HTTP_USER_AGENT'];
$windowsxp = preg_match("/Windows nt 5.1/i", $so);
$windowsxp2 = preg_match("/Windows xp/i", $so);
$linux = preg_match("/Linux/i", $so);
$windowsme = preg_match("/Win 9x 4.90/i", $so);
$windowsme2 = preg_match("/Windows me/i", $so);
$windows2k = preg_match("/Windows nt 5.0/i", $so);
$windows2kb = preg_match("/Windows 2000/i", $so);
$windowsnt = preg_match("/Windows nt 3.1/i", $so);
$windowsnt2 = preg_match("/Windows nt 3.5.0/i", $so);
$windowsnt3 = preg_match("/Windows nt 3.5.1/i", $so);
$windowsnt4 = preg_match("/Windows nt 4.0/i", $so);
$windows98 = preg_match("/Windows 98/i", $so);
$windows95 = preg_match("/Windows 95/i", $so);
if ($windowsxp == 1 or $Windowsxp2 == 1) {
$sys = "Win XP";
} else if ($linux == 1) {
$sys = "Linux";
} else if ($windowsme == 1 or $windowsme2 == 1) {
$sys = "Win ME";
} else if ($windows2k == 1 or $windows2kb == 1) {
$sys = "Win 2000";
} else if ($windowsnt == 1 or $windowsnt2 == 1 or $windowsnt3 == 1 or $windowsnt4 == 1) {
$sys = "Win NT";
} else if ($windows98 == 1 and $windowsme != 1) {
$sys = "Win 98";
} else if ($windows95 == 1) {
$sys = "Win 95";
} else {
$sys = "n/a";
}
return($sys);
}

?>

第二步,找个png格式的图片,改名为test.png,把test.png和ipcover.php文件上传到php空间,放在相同目录下。

第三步,在签名档中输入ipcover.php文件的地址,应用如:
BBS中[img]http://demoip.student163.com/ip2.php[/img]
网页中<img src=http://demoip.student163.com/ip2.php>
上面两个例子做出来的都是php格式的文件,若空间同时支持php以及.htaccess还可以做成图片格式
方法如下:
在例二的基础上,第一步,把ipcover.php改名为ipcover.png

第二步,复制以下代码,另存为.htaccess文件,注意“.”前面什么都没有,没有空格。windows操作系统下直接重命名会提示错误,可以利用拖把更名器来进行重命名。

 <FilesMatch "\.(png)$">
ForceType application/x-httpd-php
</FilesMatch>

第三步,把.htaccess文件上传到ipcover.png文件相同的目录中。

第四步,在签名档插入以下代码

BBS中[img]http://demoip.student163.com/ip2.png[/img]
网页中<img src=http://demoip.student163.com/ip2.png>
例二

 <?php
//处理要显示的相关信息
if(!(strpos($_SERVER["HTTP_ACCEPT_LANGUAGE"],"zh-cn")===false)){
$sLanguage="Chinese";
}
else
{
$sLanguage=$_SERVER["HTTP_ACCEPT_LANGUAGE"];
}
$aUserAgent=explode(";",$_SERVER["HTTP_USER_AGENT"]);
if(count($aUserAgent)>2){
$sBrowser=trim(str_replace("MSIE","Internet Explorer",$aUserAgent[1]));
if(trim($sBrowser)=="U"){
$sBrowser="Mozilla";
}
$sSys=str_replace(")","",$aUserAgent[2]);
$sSys=str_replace("NT 5.2","2003",$sSys);
$sSys=str_replace("NT 5.1","XP",$sSys);
$sSys=str_replace("NT 5.0","2000",$sSys);
$sSys=trim(str_replace("9x","Me",$sSys));
}
else
{
$sBrowser="Unknown";
$sSys="Unknown";
}
header ("Content-type: image/png");
//定义图片宽高
$nWidth=250;
$nHeight=105;
$im = @imagecreate ($nWidth,$nHeight) or die ("Cannot Initialize new GD image stream");
//图片色彩设置
$background_color = imagecolorallocate ($im, 235, 235, 240);
$sColorRed = imagecolorallocate ($im, 200, 14, 91);
$sColorBlack = imagecolorallocate ($im, 0, 0, 0);
$sColorBlue = imagecolorallocate ($im, 0, 0, 255);
$sColorGreen = imagecolorallocate ($im, 0, 160, 0);
$sColorCoral = imagecolorallocate ($im, 255, 127, 80);
//绘制图片边框
imagefilledrectangle($im, 0, 0, $nWidth - 1, $nHeight - 1, $background_color);
imagerectangle($im, 0, 0, $nWidth - 1, $nHeight - 1, $sColorBlack);
//生成图片文字
imagestring ($im, 3, 6, 6, "Your IP : " . $_SERVER["REMOTE_ADDR"], $sColorRed);
imagestring ($im, 3, 6, 26, "Language : " . $sLanguage, $sColorBlack);
imagestring ($im, 3, 6, 46, "Your OS : " . $sSys, $sColorBlue);
imagestring ($im, 3, 6, 66, "Browser : " . $sBrowser, $sColorGreen);
imagestring ($im, 3, 50, 86, "Ads By www.joyren.net", $sColorCoral);
//产生图片
imagepng ($im);
imagedestroy ($im);
?>

把上面这段文字保存为ip.jpg文件,然后在网页中就可以象图片一样来引用了。
再创建一个ip.php网页文件,其内容是:

 <?php
Header("Content-type: image/PNG");
$myip=$REMOTE_ADDR;
$im = imagecreate(158,35);
$bkg = ImageColorAllocate($im, 128,128,128 ); //背景色
$red = ImageColorAllocate($im, 204,204,204 ); //红色
$blue = ImageColorAllocate($im, 255,255,255 ); //蓝色
for ($i = 0; $i < strlen($myip); $i++) {
imagestring($im, 3, $i*10+5, 0, substr($myip,$i,1), $blue);//ImageColorAllocate($im,rand(5, 255),rand(5, 255),rand(5, 255))改成这样就成了随机色
}
imagestring($im,3,5,10,"--------------------",$red);
imagestring($im,3,20,20,"Designed 16z.com",$red);
ImagePNG($im);
ImageDestroy($im);
?>

然后将这个文件上传到一个支持php的服务器中,我们访问该文件,你看到的就是显示出你的IP地址的图片了
使用方法如:

BBS中[img]http://demoip.student163.com/ip3.php[/img]
网页中<img src=http://demoip.student163.com/ip3.php>
取得用户的真实IP?
php代码:

 <?
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
return getenv("HTTP_CLIENT_IP");
}
else {
return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
return getenv("HTTP_X_FORWARDED_FOR");
}
else {
return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
return getenv("REMOTE_ADDR");
}
else {
return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
return $ip3;
}
else {
return "none";
}
}
Echo ip();
?>

你为建站烦吗?为服务器设置而愁吗?来技术无忧服务器专版一切问题将不在存在。


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面