找回密码
 注册
【阿里云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折华为云精选云产品特惠糖果主机Jtti,新加坡服务器,美国服务器,香港服务器,海外云服务器
查看: 1291|回复: 13

求PHP显IP图片源码

[复制链接]
发表于 2009 年 1 月 20 日 20:09:56 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 一跳而过 于 2009-1-20 20:35 编辑

RT
只要能显IP就行
望各位JG高人帮下忙
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
 楼主| 发表于 2009 年 1 月 20 日 20:10:15 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价

坐沙发等
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2009 年 1 月 20 日 20:16:03 | 显示全部楼层
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 20:26:18 | 显示全部楼层
<?PHP Echo('IP');?>
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 20:27:15 | 显示全部楼层
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2009 年 1 月 20 日 20:33:20 | 显示全部楼层

PHP简单显IP图片
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 20:35:47 | 显示全部楼层
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 20:37:37 | 显示全部楼层
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 20:39:27 | 显示全部楼层
直接用楼主的标题百度一下就行了.
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2009 年 1 月 20 日 21:01:45 | 显示全部楼层
可显IP,显具体地址,显中文图片的源程序~~

这个源码也不全是我的,我是借用一个前辈的代码,就是显中文这段代码!
这个文件存为:jacker.php
  1. <?php
  2. function drawer($image, $string, $x, $y, $color)
  3. {
  4.   $fp = fopen("chs16.fon", "r"); //WIN98中,此文件在:c:\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文本文件的代码,由于刚学PHP没几天,也是刚接触编程,所以.....
我自己看了,都有好多地方不尽人意,代码可以更简洁一点,希望各位前辈莫见笑,
帮忙指点一下!该文件我存为: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.           if($flag==0){
  45.         echo "未知地区"."<BR>".$flag;
  46.                   }
  47. ?>
复制代码

最后就是读一个图片文件,再在上面写上自己想要写的东西!
这个应该比较简单,网上教程也多!一起贴上来;
我命名为: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="http://jacker.uni.cc";
  12.                

  13. drawer($image,$system,90,360,$white);  
  14. drawer($image,$browser,90,378,$white);
  15. drawer($image,$ip,90,396,$white);                         //输出IP地址
  16. drawer($image,$ip_data_detail,90,414,$white);
  17. drawer($image,$homepage,90,432,$white);

  18.   imagepng ($image);                                      // 以png格式输出
  19.                                                           // 也可以用imagejpeg($im);
  20.                                                           // 或imagegif($im);
  21.                                                           // 但后者,如果GD版本高于1.6,就不能用了。
  22.   imagedestroy ($image);                                  // 结束,清楚所有占用的内存资源

  23. function show_browser(){
  24. $b = $_SERVER['HTTP_USER_AGENT'];
  25. $ie50 = preg_match("/MSIE 5.0/i", $b);
  26. $ie55 = preg_match("/MSIE 5.5/i", $b);
  27. $ie60 = preg_match("/MSIE 6.0/i", $b);
  28. $opera = preg_match("/opera/i", $b);
  29. if ($ie40 == 1) {
  30. $browser = "MSIE4.0";
  31. } else if ($ie50 == 1) {
  32. $browser = "MSIE5.0";
  33. } else if ($ie55 == 1) {
  34. $browser = "MSIE5.5";
  35. } else if ($ie60 == 1) {
  36. $browser = "MSIE6.0";
  37. } else if ($opera == 1) {
  38. $browser = "Opera";
  39. } else {
  40. $browser = "n/a";
  41. }
  42. return($browser);
  43. }

  44. function show_system(){
  45. $so = $_SERVER['HTTP_USER_AGENT'];
  46. $windowsxp = preg_match("/windows nt 5.1/i", $so);
  47. $windowsxp2 = preg_match("/windows xp/i", $so);
  48. $linux = preg_match("/linux/i", $so);
  49. $windowsme = preg_match("/win 9x 4.90/i", $so);
  50. $windowsme2 = preg_match("/windows me/i", $so);
  51. $windows2k = preg_match("/windows nt 5.0/i", $so);
  52. $windows2kb = preg_match("/windows 2000/i", $so);
  53. $windowsnt = preg_match("/windows nt 3.1/i", $so);
  54. $windowsnt2 = preg_match("/windows nt 3.5.0/i", $so);
  55. $windowsnt3 = preg_match("/windows nt 3.5.1/i", $so);
  56. $windowsnt4 = preg_match("/windows nt 4.0/i", $so);
  57. $windows98 = preg_match("/windows 98/i", $so);
  58. $windows95 = preg_match("/windows 95/i", $so);
  59. if ($windowsxp == 1 or $windowsxp2 == 1) {
  60. $sys = "Win XP";
  61. } else if ($linux == 1) {
  62. $sys = "Linux";
  63. } else if ($windowsme == 1 or $windowsme2 == 1) {
  64. $sys = "Win ME";
  65. } else if ($windows2k == 1 or $windows2kb == 1) {
  66. $sys = "Win 2000";
  67. } else if ($windowsnt == 1 or $windowsnt2 == 1 or $windowsnt3 == 1 or $windowsnt4 == 1) {
  68. $sys = "Win NT";
  69. } else if ($windows98 == 1 and $windowsme != 1) {
  70. $sys = "Win 98--怎么还用瘟酒吧啊";
  71. } else if ($windows95 == 1) {
  72. $sys = "Win 95--系统也太落后了吧";
  73. } else {
  74. $sys = "n/a";
  75. }
  76. return($sys);
  77. }


  78. ?>
复制代码


其中,IP地址我用的是纯情版的,我分成了5个文件来读写,
如果只要国内的IP,体积应该会更小,具体情况具体分析!
以下是一个示例文件:

                               
登录/注册后可看大图



源程序下载地址: 一:http://jacker.uni.cc/ip.rar
源程序下载地址: 二:http://jacker.cun.jp/ip.rar
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024 年 9 月 20 日 12:07 , Processed in 0.096381 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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