本文目錄一覽:
根據不同ip段 網站如何 來顯示不同的內容(php)
我仔細分析一下你的問題
1.首先要建一個IP對應學校的表realation
主要字段有id(自動增加),ip,school_name
然後你就將你知道的IP地址和學校輸入到此表中!
如:1 58.240.89.1 中華大學
2.這樣你在頁面獲得訪問者的IP地址語句如下:
if(getenv(‘HTTP_CLIENT_IP’)) {
$client_ip = getenv(‘HTTP_CLIENT_IP’);
} elseif(getenv(‘HTTP_X_FORWARDED_FOR’)) {
$client_ip = getenv(‘HTTP_X_FORWARDED_FOR’);
} elseif(getenv(‘REMOTE_ADDR’)) {
$client_ip = getenv(‘REMOTE_ADDR’);
} else {
$client_ip = $HTTP_SERVER_VARS[‘REMOTE_ADDR’];
}
不能單單只使用getenv(‘REMOTE_ADDR’)獲得IP,因為有客戶會使用代理服務器…
3.查詢數據庫,獲取表中記錄語句如下:
$link = mysql_connect(“localhost”, “數據庫用戶名”, “數據庫密碼”);//連接數據庫
mysql_select_db(“你的數據庫”);//選擇數據庫
$sql=”select * from relation”;
$set=mysql_query($sql);
//$row=mysql_fetch_arry($set); 得出所有記錄!
4.這個時候可以循環進行判斷了
while ($row = mysql_fetch_array($set)) {
if($clinet_IP==$row[‘ip’]){
echo “歡迎”.row[‘school_name’].”的同學來光臨!”
}
}
php根據來訪者不同IP顯示不同內容
像你這樣為每個ip訪問者保存一份搜索記錄,這樣太耗費資源了。因為訪問者的IP是會變的,而且訪問者多的話,這樣記錄是會死人的,如果你要是想做的話,建個訪問記錄表就可以了,不用每個ip建個表,字段有:訪問者ip,訪問者輸入的關鍵詞。沒見過你這樣按訪問者Ip來記錄搜索數據的,一般搞個熱搜關鍵詞、跟地區有關的關鍵詞就可以了。
php程序 js判斷ip地區根據不同ip輸出不同內容(商務通代碼)
不建議使用js進行這個處理,你這樣做的話完整過程為
1. 用戶訪問php頁面
2. 服務端輸出html
3. 瀏覽器運行js檢查ip所屬區域
4. ajax方式提交區域信息給服務器
5. 服務器返回查詢結果
6. js將查詢結果顯示到當前頁面
你想想這要多長時間。因此最好是php端直接判斷區域,然後直接查詢並輸出就行了。
提供一個php寫的函數,如果有用望採納
function getCityByUserIp() {
$ip = false;
if (isset($_SERVER)){
if (isset($_SERVER[“HTTP_X_FORWARDED_FOR”])){
$ip = $_SERVER[“HTTP_X_FORWARDED_FOR”];
} else if (isset($_SERVER[“HTTP_CLIENT_IP”])) {
$ip = $_SERVER[“HTTP_CLIENT_IP”];
} else {
$ip = $_SERVER[“REMOTE_ADDR”];
}
} else {
if (getenv(“HTTP_X_FORWARDED_FOR”)){
$ip = getenv(“HTTP_X_FORWARDED_FOR”);
} else if (getenv(“HTTP_CLIENT_IP”)) {
$ip = getenv(“HTTP_CLIENT_IP”);
} else {
$ip = getenv(“REMOTE_ADDR”);
}
}
if (false === $ip) {
return false;
}
$file = fopen(‘;ip=’ . $ip, ‘r’);
$content = fread($file, 1024);
fclose($file);
if (! preg_match(“/^var remote_ip_info = (\\{[^\\}]+\\});$/”, $content, $_match)) {
return false;
}
$ipInfo = json_decode($_match[1]);
return $ipInfo;
}
返回的數組中包括 country, province, city等,如果返回false表示無法獲得ip或該ip沒有在大陸地區匹配的記錄(港澳台似乎有province,但是沒有city)。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190763.html