帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > PHP编程
一套全新的计数器(session控制,记录浏览者信息,IP物理地址查询)
作者:匿名 发布时间:2002-12-20 来源:www.code-labs.com

数据表建立的sql语句:
CREATE TABLE `count`.`count` (
  `id` int(100) NOT NULL auto_increment,
  `ip` varchar(100) NOT NULL default '0',
  `add` varchar(100) NOT NULL default '0',
  `os` varchar(100) NOT NULL default '0',
  `browse` varchar(100) NOT NULL default '0',
  `time` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) TYPE=MyISAM

index.php

用于现实最近的若干条信息!



<?

session_start();

?>

<? echo "<div align='center'>";include ("ip.php");echo "</div>";?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<table width="776" border="0" align="center" cellpadding="0" cellspacing="00">

<tr>

<td valign="top"><p> <font color="#000033">网站访问量统计数据:</font></p>

<p><font color="#000033">(您的IP地址是:<font color="#FF0000"><?php echo $ip; ?><font color="#000033">,</font></font>您来自<font color="#FF0000"><?php echo $add; ?><font color="#000033">,</font></font>您的浏览器为<font color="#FF0000"><?php echo $browse; ?><font color="#000033">,</font></font>操作系统<font color="#FF0000"><?php echo $os; ?><font color="#000033">)</font></font></font></p>

<table width="100%" border="0" cellpadding="0" cellspacing="00">

<tr>

<td colspan="5"><font color="#FF0000">最近的10条访问信息</font></td>

</tr>

<tr>

<td width="20%"><div align="left"><font color="#FF0000">IP</font></div></td>

<td width="20%"><div align="left"><font color="#FF0000">操作系统</font></div></td>

<td width="20%"><div align="left"><font color="#FF0000">浏览器类型</font></div></td>

<td width="20%"><div align="left"><font color="#FF0000">地址</font></div></td>

<td width="20%"><div align="left"><font color="#FF0000">时间</font></div></td>

</tr>

<?

$link=mysql_connect("localhost","root","");

$db=mysql_select_db("count",$link);

$query=mysql_query("select * from count order by time desc limit 10");

while($array=mysql_fetch_array($query))

{

?>

<tr valign="middle">

<td> <font color="#000066"><?php echo $array[ip]; ?> </font> <div align="left"></div></td>

<td> <font color="#000066"><?php echo $array[os]; ?> </font> <div align="left"></div></td>

<td><font color="#000066"><?php echo $array[browse]; ?> </font> <div align="left"></div></td>

<td><font color="#000066"><?php echo $array[add]; ?> </font> <div align="left"></div></td>

<td><font color="#000066"><?php echo $array[time]; ?> </font> <div align="left"></div></td>

</tr>

<?

}

?>

</table>

</td>

</tr>

</table>

</body>

</html>











counter.php





采集信息和纪录信息

<?

session_start();

function crain_ip()//取得浏览客户的真实IP地址----crain Thursday November 14, 2002 3:43

{

$ip=getenv('REMOTE_ADDR');

$ad=getenv('HTTP_X_FORWARDED_FOR');

if(($ad!= "")&&($ad!="unknown"))

{

$ip=$ad;

}

return $ip;

}

function crain_found_add($ip)//探察IP来源----crain Thursday November 14, 2002 4:43

{

if ($ip=="")

{

$ip=getenv('REMOTE_ADDR');

}

$ip_client=explode(".",$ip);

$ip_client_total=$ip_client[0]*1000000000+$ip_client[1]*1000000+$ip_client[2]*1000+$ip_clien



t[3];

$ip_client[0]=intval($ip_client[0]);

if(file_exists("../count/ip_datebase/$ip_client[0].txt"))

{

$ip_datebase="../count/ip_datebase/$ip_client[0].txt";

}

else {

$ip_datebase="../count/ip_datebase/0.txt";

}

$add_jigou="";

$add_country="";

$add_last="";

$ipdata=file($ip_datebase);

for ($i=0;$i<count($ipdata);$i++)

{

$ip_date_first=explode("|",$ipdata[$i]);

$add_jigou=$ip_date_first[3];

$add_country=$ip_date_first[2];

$ip_date_second=explode(".",$ip_date_first[0]);

$ip_date_third=explode(".",$ip_date_first[1]);

$ip_start=$ip_date_second[0]*1000000000+$ip_date_second[1]*1000000+$ip_date_second[2]*1000+$



ip_date_second[3];

$ip_end=$ip_date_third[0]*1000000000+$ip_date_third[1]*1000000+$ip_date_third[2]*1000+$ip_da



te_third[3];



if(($ip_client_total<=$ip_end) && ($ip_client_total>=$ip_start))

{

$add_last=$add_country.$add_jigou;

break;

}

}

if ($add_jigou=="")

{

$add_last="未探知区域";

}

return $add_last;

}



function crain_browse_info()

{

$browser="";$browserver="";

$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");

$Agent = $GLOBALS["HTTP_USER_AGENT"];

for ($i=0; $i<=7; $i++) {

if (strpos($Agent,$Browsers[$i])) {

$browser = $Browsers[$i];

$browserver ="";

}

}

if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent)) {

$temp =explode("(", $Agent); $Part=$temp[0];

$temp =explode("/", $Part); $browserver=$temp[1];

$temp =explode(" ",$browserver); $browserver=$temp[0];

$browserver =preg_replace("/([d.]+)/","1",$browserver);

$browserver = " $browserver";

$browser = "Netscape Navigator";

}

if (ereg("Mozilla",$Agent) && ereg("Opera",$Agent)) {

$temp =explode("(", $Agent); $Part=$temp[1];

$temp =explode(")", $Part); $browserver=$temp[1];

$temp =explode(" ",$browserver);$browserver=$temp[2];

$browserver =preg_replace("/([d.]+)/","1",$browserver);

$browserver = " $browserver";

$browser = "Opera";

}

if (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) {

$temp = explode("(", $Agent); $Part=$temp[1];

$temp = explode(";",$Part); $Part=$temp[1];

$temp = explode(" ",$Part);$browserver=$temp[2];

$browserver =preg_replace("/([d.]+)/","1",$browserver);

$browserver = " $browserver";

$browser = "微软探索者(IE)";

}

if ($browser!="") {

$browseinfo = "$browser$browserver";

}

else {

$browseinfo = "未知的浏览器";

}

return $browseinfo;

}



function crain_os_info() //crain修改前人程序于November 14, 2002

{

$os="";

$Agent = $GLOBALS["HTTP_USER_AGENT"];

if (eregi('win',$Agent) && strpos($Agent, '95')) {

$os="Windows 95";

}

elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {

$os="Windows ME";

}

elseif (eregi('win',$Agent) && ereg('98',$Agent)) {

$os="Windows 98";

}

elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {

$os="Windows 2000";

}

elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {

$os="Windows XP";

}

elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {

$os="Windows NT";

}

elseif (eregi('win',$Agent) && ereg('32',$Agent)) {

$os="Windows 32";

}

elseif (eregi('linux',$Agent)) {

$os="Linux";

}

elseif (eregi('unix',$Agent)) {

$os="Unix";

}

elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {

$os="SunOS";

}

elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {

$os="IBM OS/2";

}

elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {

$os="Macintosh";

}

elseif (eregi('PowerPC',$Agent)) {

$os="PowerPC";

}

elseif (eregi('AIX',$Agent)) {

$os="AIX";

}

elseif (eregi('HPUX',$Agent)) {

$os="HPUX";

}

elseif (eregi('NetBSD',$Agent)) {

$os="NetBSD";

}

elseif (eregi('BSD',$Agent)) {

$os="BSD";

}

elseif (ereg('OSF1',$Agent)) {

$os="OSF1";

}

elseif (ereg('IRIX',$Agent)) {

$os="IRIX";

}

elseif (eregi('FreeBSD',$Agent)) {

$os="FreeBSD";

}

if ($os=='') $os = "Unknown";

return $os;

}

?>

<?

if(!session_is_registered(counttime))

{

//取得浏览者信息

$ip=crain_ip();

$add=crain_found_add($ip);

$browse=crain_browse_info();

$os=crain_os_info();

$time=date("Y-m-d H:i").time();

//以下为数据库操作部分!

$link=mysql_connect("localhost","root","");

$db=mysql_select_db("count",$link);

$query="INSERT INTO `count` (`os`, `add`, `browse`, `time`, `ip`) VALUES ('$os', '$add',



'$browse', '$time', '$ip')";

mysql_query($query)or die("can't insert!");

$query=mysql_query("select * from count");

$counttime=mysql_num_rows($query);

session_register(counttime);

mysql_close($link);

}

?>















ip_query.php

IP地址查询部分!









<?

if($Submit)

{

if($ipquery)

{

function found_add($ip)//探察IP来源----crain Thursday November 14, 2002 4:43

{

if ($ip=="")

{

$ip=getenv('REMOTE_ADDR');

}

$ip_client=explode(".",$ip);

$ip_client_total=$ip_client[0]*1000000000+$ip_client[1]*1000000+$ip_client[2]*1000+$ip_client[3];

$ip_client[0]=intval($ip_client[0]);

if(file_exists("../count/ip_datebase/$ip_client[0].txt"))

{

$ip_datebase="../count/ip_datebase/$ip_client[0].txt";

}

else {

$ip_datebase="../count/ip_datebase/0.txt";

}

$add_jigou="";

$add_country="";

$add_last="";

$ipdata=file($ip_datebase);

for ($i=0;$i<count($ipdata);$i++)

{

$ip_date_first=explode("|",$ipdata[$i]);

$add_jigou=$ip_date_first[3];

$add_country=$ip_date_first[2];

$ip_date_second=explode(".",$ip_date_first[0]);

$ip_date_third=explode(".",$ip_date_first[1]);

$ip_start=$ip_date_second[0]*1000000000+$ip_date_second[1]*1000000+$ip_date_second[2]*1000+$ip_date_second[3];

$ip_end=$ip_date_third[0]*1000000000+$ip_date_third[1]*1000000+$ip_date_third[2]*1000+$ip_date_third[3];



if(($ip_client_total<=$ip_end) && ($ip_client_total>=$ip_start))

{

$add_last=$add_country.$add_jigou;

break;

}

}

if ($add_jigou=="")

{

$add_last="未探知区域";

}

return $add_last;

}

$address=found_add($ipquery);

}

}

?>



<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>



<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<form name="form1" method="post" action="ip_query.php">

<p align="center"> 您要查询的IP地址:

<input name="ipquery" type="text" id="ip" value="<?

if($ipquery=="")

{

$ipquery=getenv('REMOTE_ADDR');

}

echo $ipquery;

?>">

<input type="submit" name="Submit" value="查看一下">

</p>

<table width="450" border="0" align="center" cellpadding="0" cellspacing="00">

<tr>

<td> <div align="justify"><font color="#330066"> 您查询的IP地址对应的地理位置为<font color="#FF0000">:<? echo $address; ?></font><br>

<?

//$cmd="ipconfig/all";

//system($cmd, $list);

//for ($i=0;$i < count($list);$i++)

//{

//print $list[$i]."<br>";

//}

?>

</font></div></td>

</tr>

</table>

</form>

</body>

</html>







下面有几个文本文件记录IP的物理地址,有需要的请与我查询!

我的电子邮件onlyphp@yahoo.com.cn

做出来的东西~~~缺苦于没有地方放!人!真的有不得志的时候!

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·一套加解密字符串的函数  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·Windows下集成安装Apache,PHP,MYSQ
·Mysql注入:SQL Injection with MyS
·PHP 的来龙去脉
·PHP 的功能概述
·PHP与其它CGI的比较
·PHP 的编译配置详细选项
·php.ini 配置详细选项
·如何写作PHP程序
·Hello,World
·嵌入方法
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统