重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在mysql_connect的时候判断IP即可,不知道你的难度在哪里,获取IP会不会?IF语句会不会?mysql_connect知道否?
成都创新互联公司长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为华州企业提供专业的成都网站制作、网站设计,华州网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
首先要使用SQL
Server
Driverfor
PHP,下载好对应的版本后,在PHP中添加下载好的扩展。
部分代码:
$serverName
=
"localhost";
//数据库服务器地址$uid
=
"sa";
//数据库用户名$pwd
=
"123";
//数据库密码$connectionInfo
=
array("UID"=$uid,"PWD"=$pwd,
"Database"="cart");$conn
=
sqlsrv_connect(
$serverName,
$connectionInfo);if(
$conn
==
false){
echo
"连接失败!";
die(
print_r(sqlsrv_errors(),
true));}
大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP,
但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。
经过我的研究有两种方法来获取用户的真实外网IP。
方法一:curl
复制代码代码如下:
function get_onlineip() {
$ch = curl_init('');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/\[(.*)\]/', $a, $ip);
return $ip[1];
}
方法二:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址
复制代码代码如下:
function get_onlineip() {
$onlineip = '';
if(getenv('HTTP_CLIENT_IP') strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}
?php
error_reporting(0);
header("content-type:text/html;charset=utf-8");
$conn=mysql_connect("127.0.0.1","root","qaz123");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $conn);
mysql_query("set names utf-8") ;
$ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"];
$time=time();
mysql_query("INSERT INTO visit (ip, time) values('$ip','$time')") ;
/*
CREATE TABLE `visit` (
`id` int NOT NULL AUTO_INCREMENT ,
`ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
CHECKSUM=0
DELAY_KEY_WRITE=0
;
*/
要看你是同步还是异步了,异步的话,每次发送都要走三次握手,再计算总时间
你要快就同步,同时发1000台计算机,不用等每一次的返回是否正确.