找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 4015|回复: 35

[PHP] 可显IP、显具体地址、显中文图片的源程序

[复制链接]
发表于 2005 年 7 月 6 日 14:15:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
  jacker.php
  1. <?php
  2. function drawer($image, $string, $x, $y, $color)
  3. {
  4.    $fp = fopen("chs16.fon", "r"); //WIN98中,此文件在:\windows\command 下
  5.    if (feof($fp))
  6.    {
  7.        fclose($fp);
  8.        return 0;
  9.    }
  10. // gbk
  11.    $strings = preg_split('/((?:[\\x80-\\xFF][\\x40-\\xFF])+)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
  12.    $isch = false;
  13.    for ($p = 0, $count = count($strings); $p < $count; $p ++)
  14.    {
  15.        if ($isch)
  16.        {
  17.            $string = $strings[$p];
  18.            for ($i = 0, $l = strlen($string) - 1; $i < $l; $i += 2)
  19.            {
  20.                $qh = ord($string{$i}); // get ascii code
  21.                $offset = (94 * ($qh - 0xA0 - 1) + (ord($string{$i + 1}) - 0xA0 - 1)) * 32;
  22.                fseek($fp, $offset, SEEK_SET);
  23.                $buffer = unpack('n*', fread($fp, 32));
  24.                // $buffers[$offset] = $buffer;
  25.                for ($yy = 1, $ypos = $y; $yy <= 16; $yy ++, $ypos ++)
  26.                {
  27.                    $bits = $buffer[$yy];
  28.                    for ($xbit = 32768, $xpos = $x; $xbit > 0; $xbit >>= 1, $xpos ++)
  29.                    {
  30.                        if ($bits & $xbit)
  31.                        {
  32.                            imagesetpixel($image, $xpos, $ypos, $color);
  33.                        }
  34.                    }
  35.                }
  36.                $x += 16;
  37.            }
  38.        }
  39.        else
  40.        {
  41.            imagestring($image, 12, $x, $y, $strings[$p], $color);
  42.            $x += strlen($strings[$p]) * 9;
  43.        }
  44.        $isch = !$isch;
  45.    }
  46.    return 0;
  47. }
  48. ?>
复制代码
读IP文本文件的代码该文件存为:ip.php:
  1. <?
  2. $flag=0;
  3. $ip_detail=explode(".",$_SERVER["REMOTE_ADDR"]);
  4. if ($ip_detail[0]<=61) {
  5.    $ip_data_file=61;
  6. }
  7. elseif($ip_detail[0]<=199) {
  8.    $ip_data_file=199;
  9. }
  10. elseif($ip_detail[0]<=217){
  11.    $ip_data_file=217;
  12. }
  13. elseif($ip_detail[0]==218){
  14.    $ip_data_file=218;
  15. }
  16. else{
  17.    $ip_data_file=255;
  18. }
  19. if (file_exists("ipdata/$ip_data_file.txt")) {
  20.    $ip_fdata=fopen("ipdata/$ip_data_file.txt","r");
  21. }
  22. else {
  23.    if(!($ip_fdata=fopen("/ipdata/0.txt","r"))) {
  24.        die("IP 数据文件错误");
  25.    }
  26. }
  27. for ($i=0; $i<=3; $i++) {
  28.    $ip_detail[$i]=sprintf("%3d", $ip_detail[$i]);
  29. }
  30. while(!feof($ip_fdata)){
  31.    $ip_data=fgets($ip_fdata,200);
  32.    $ip_data_detail=substr($ip_data,32,strlen($ip_data)-33); //IP物理地址
  33.    $test000=explode(".",substr($ip_data,0,16));
  34.    $test001=explode(".",substr($ip_data,16,16));
  35.    for($s=0;$s<=3;$s++){
  36.        $ip0[$s]=sprintf("%3d",$test000[$s]);
  37.        $ip1[$s]=sprintf("%3d",$test001[$s]);
  38.    }
  39.    if(join(".",$ip_detail)>=join(".",$ip0) and join(".",$ip_detail)<=join(".",$ip1)) {
  40.        fclose($ip_fdata);
  41.        $flag=1;
  42.        break;
  43.    }
  44. }
  45. if($flag==0){
  46.    echo "未知地区"."<BR>".$flag;
  47. }
  48. ?>
复制代码
读一个图片文件命名为:ip.php
  1. <?php
  2. header ("Content-type: image/png"); //http头
  3. require ("jacker.php");
  4. require ("ip.php");
  5. $image = @imagecreatefrompng ("logo.png"); // 载入图片
  6. $black = imagecolorallocate ($image, 0, 0, 0); // 默认黑色背景
  7. $white = imagecolorallocate ($image, 255, 255, 255); // 默认黑色背景
  8. $system=show_system();
  9. $browser=show_browser();
  10. $ip=$_SERVER["REMOTE_ADDR"];
  11. $homepage="[url]http://www.123cha.com/bbs[/url]";
  12. drawer($image,$system,90,360,$white);
  13. drawer($image,$browser,90,378,$white);
  14. drawer($image,$ip,90,396,$white); //输出IP地址
  15. drawer($image,$ip_data_detail,90,414,$white);
  16. drawer($image,$homepage,90,432,$white);
  17. imagepng ($image); // 以png格式输出
  18. // 也可以用imagejpeg($im);
  19. // 或imagegif($im);
  20. // 但后者,如果GD版本高于1.6,就不能用了。
  21. imagedestroy ($image); // 结束,清楚所有占用的内存资源
  22. function show_browser(){
  23.    $b = $_SERVER['HTTP_USER_AGENT'];
  24.    $ie50 = preg_match("/MSIE 5.0/i", $b);
  25.    $ie55 = preg_match("/MSIE 5.5/i", $b);
  26.    $ie60 = preg_match("/MSIE 6.0/i", $b);
  27.    $opera = preg_match("/opera/i", $b);
  28.    if ($ie40 == 1) {
  29.        $browser = "MSIE4.0";
  30.    } else if ($ie50 == 1) {
  31.        $browser = "MSIE5.0";
  32.    } else if ($ie55 == 1) {
  33.        $browser = "MSIE5.5";
  34.    } else if ($ie60 == 1) {
  35.        $browser = "MSIE6.0";
  36.    } else if ($opera == 1) {
  37.        $browser = "Opera";
  38.    } else {
  39.        $browser = "n/a";
  40.    }
  41. return($browser);
  42. }
  43. function show_system(){
  44.    $so = $_SERVER['HTTP_USER_AGENT'];
  45.    $windowsxp = preg_match("/windows nt 5.1/i", $so);
  46.    $windowsxp2 = preg_match("/windows xp/i", $so);
  47.    $linux = preg_match("/linux/i", $so);
  48.    $windowsme = preg_match("/win 9x 4.90/i", $so);
  49.    $windowsme2 = preg_match("/windows me/i", $so);
  50.    $windows2k = preg_match("/windows nt 5.0/i", $so);
  51.    $windows2kb = preg_match("/windows 2000/i", $so);
  52.    $windowsnt = preg_match("/windows nt 3.1/i", $so);
  53.    $windowsnt2 = preg_match("/windows nt 3.5.0/i", $so);
  54.    $windowsnt3 = preg_match("/windows nt 3.5.1/i", $so);
  55.    $windowsnt4 = preg_match("/windows nt 4.0/i", $so);
  56.    $windows98 = preg_match("/windows 98/i", $so);
  57.    $windows95 = preg_match("/windows 95/i", $so);
  58.    if ($windowsxp == 1 or $windowsxp2 == 1) {
  59.        $sys = "Win XP";
  60.    } else if ($linux == 1) {
  61.        $sys = "Linux";
  62.    } else if ($windowsme == 1 or $windowsme2 == 1) {
  63.        $sys = "Win ME";
  64.    } else if ($windows2k == 1 or $windows2kb == 1) {
  65.        $sys = "Win 2000";
  66.    } else if ($windowsnt == 1 or $windowsnt2 == 1 or $windowsnt3 == 1 or $windowsnt4 == 1) {
  67.        $sys = "Win NT";
  68.    } else if ($windows98 == 1 and $windowsme != 1) {
  69.        $sys = "Win 98--怎么还用瘟酒吧啊";
  70.    } else if ($windows95 == 1) {
  71.        $sys = "Win 95--系统也太落后了吧";
  72.    } else {
  73.        $sys = "n/a";
  74.    }
  75. return($sys);
  76. }
  77. ?>
复制代码
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
发表于 2005 年 7 月 6 日 14:17:44 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
謝~~存下
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:19:01 | 显示全部楼层
哈,昨天在MS那里看过,今天这个有什么特别之处么
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:20:31 | 显示全部楼层
找了N久了~~~~~~~~~~~~~太感谢了~~~~~~~研究去了~~~~~~~
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:21:45 | 显示全部楼层
看过
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:22:28 | 显示全部楼层
顶哦!不错哦
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:49:50 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
读IP文本文件的代码该文件存为:ip.php:
读一个图片文件命名为:ip.php

是不是重复命名了~~~~
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:53:41 | 显示全部楼层
支持MM
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 14:57:22 | 显示全部楼层
以后玩
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 7 月 6 日 15:11:38 | 显示全部楼层
不错。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 4 日 21:51 , Processed in 0.071940 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表