[51js.com]可显IP,显具体地址,显中文图片的源程序~~

这个文件存为:jacker.php
<?php
function drawer($image, $string, $x, $y, $color)
{
  $fp = fopen("chs16.fon", "r"); //WIN98中,此文件在:c:/windows/command 下
  if (feof($fp))
  {
    fclose($fp);
    return 0;
  }
// gbk
  $strings = preg_split('/((?:[//x80-//xFF][//x40-//xFF])+)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
  $isch = false;
  for ($p = 0, $count = count($strings); $p < $count; $p ++)
  {
    if ($isch)
    {
      $string = $strings[$p];
      for ($i = 0, $l = strlen($string) - 1; $i < $l; $i += 2)
      {
        $qh = ord($string{$i}); // get ascii code
        $offset = (94 * ($qh - 0xA0 - 1) + (ord($string{$i + 1}) - 0xA0 - 1)) * 32;
        fseek($fp, $offset, SEEK_SET);
        $buffer = unpack('n*', fread($fp, 32));
//        $buffers[$offset] = $buffer;
        for ($yy = 1, $ypos = $y; $yy <= 16; $yy ++, $ypos ++)
        {
          $bits = $buffer[$yy];
          for ($xbit = 32768, $xpos = $x; $xbit > 0; $xbit >>= 1, $xpos ++)
          {
            if ($bits & $xbit)
            {
               imagesetpixel($image, $xpos, $ypos, $color);
            }
          }
        }
        $x += 16;
      }
    }
    else
    {
      imagestring($image, 12, $x, $y, $strings[$p], $color);
      $x += strlen($strings[$p]) * 9;
    }
    $isch = !$isch;
  }
return 0;

}
?>

提示:你可以先修改部分代码再运行

下面是读IP文本文件的代码,由于刚学PHP没几天,也是刚接触编程,所以.....
我自己看了,都有好多地方不尽人意,代码可以更简洁一点,希望各位前辈莫见笑,
帮忙指点一下!该文件我存为:ip.php

<?
        $flag=0;
        $ip_detail=explode(".",$_SERVER["REMOTE_ADDR"]);

if ($ip_detail[0]<=61)        {
        $ip_data_file=61;
                        }
elseif($ip_detail[0]<=199){
        $ip_data_file=199;
                        }
elseif($ip_detail[0]<=217){
        $ip_data_file=217;
                        }
elseif($ip_detail[0]==218){
        $ip_data_file=218;
                        }
else{
        $ip_data_file=255;
        }

        if (file_exists("ipdata/$ip_data_file.txt")) {
                $ip_fdata=fopen("ipdata/$ip_data_file.txt","r");
                                                     }
        else {
                if(!($ip_fdata=fopen("/ipdata/0.txt","r"))) {
                        die("IP 数据文件错误");
                                                           }
              }
        for ($i=0; $i<=3; $i++) {
                $ip_detail[$i]=sprintf("%3d", $ip_detail[$i]);
                                }
             while(!feof($ip_fdata)){
                $ip_data=fgets($ip_fdata,200);
                        $ip_data_detail=substr($ip_data,32,strlen($ip_data)-33);           //IP物理地址
                $test000=explode(".",substr($ip_data,0,16));
        $test001=explode(".",substr($ip_data,16,16));

for($s=0;$s<=3;$s++){
        $ip0[$s]=sprintf("%3d",$test000[$s]);
        $ip1[$s]=sprintf("%3d",$test001[$s]);
                        }


            if(join(".",$ip_detail)>=join(".",$ip0) and join(".",$ip_detail)<=join(".",$ip1)) {
                        fclose($ip_fdata);
                        $flag=1;
                         break;                                               }
                              };
          if($flag==0){
        echo "未知地区"."<BR>".$flag;
                  }
?>

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

源程序下载地址: 一:http://jacker.uni.cc/ip.rar
源程序下载地址: 二:http://jacker.cun.jp/ip.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值