十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在mysql_connect的時候判斷IP即可,不知道你的難度在哪里,獲取IP會不會?IF語句會不會?mysql_connect知道否?
成都創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為華州企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設(shè)計,華州網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
首先要使用SQL
Server
Driverfor
PHP,下載好對應(yīng)的版本后,在PHP中添加下載好的擴展。
部分代碼:
$serverName
=
"localhost";
//數(shù)據(jù)庫服務(wù)器地址$uid
=
"sa";
//數(shù)據(jù)庫用戶名$pwd
=
"123";
//數(shù)據(jù)庫密碼$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就不是用戶的地址,反而是上一級代理的地址了。
經(jīng)過我的研究有兩種方法來獲取用戶的真實外網(wǎng)IP。
方法一:curl
復(fù)制代碼代碼如下:
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']來獲取相應(yīng)的地址
復(fù)制代碼代碼如下:
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
;
*/
要看你是同步還是異步了,異步的話,每次發(fā)送都要走三次握手,再計算總時間
你要快就同步,同時發(fā)1000臺計算機,不用等每一次的返回是否正確.