.net core 和 WPF 開發升訊威在線客服系統:使用本地IP數據庫實現訪客來源快速定位,支持國外
- 2021 年 11 月 27 日
- 筆記
本系列文章詳細介紹使用 .net core 和 WPF 開發 升訊威在線客服與營銷系統 的過程。本產品已經成熟穩定並投入商用。
免費使用 & 私有化部署://kf.shengxunwei.com
視頻實拍:演示升訊威在線客服系統在網絡中斷,直接禁用網卡,拔掉網線的情況下,也不丟消息,不出異常。
//blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53
隨着系統的用戶越來越多,陸續有客戶向我提出反饋意見,關於訪客 IP 地址定位的問題,之前我用的是百度 IP 定位的 API 接口,這種方式有幾個比較大的問題:
- 需要實名註冊認證百度賬戶。
- 只能定位國內IP地址,國外不支持。
- 只有1000次/天的使用額度,有用戶訪客量較大之後,就只能顯示成未知來源了。
隨時用戶的增多,特別是有些用戶的訪客量會話量很大,調用百度API定位也出現了明顯的性能不足,並且百度限制了並發數量,不能並發請求。
只有一個辦法,徹底放棄百度IP接口,通過離線IP數據庫,自主查詢定位了。本篇將詳細介紹實現辦法。
老規矩,先看看實現效果,已經可以定位海外IP:
下載安裝 GeoIP
所謂 GeoIP,就是通過來訪者的IP, 定位他的經緯度,國家/地區,省市,甚至街道等位置信息。這裏面的技術不算難題,關鍵在於有個精準 的數據庫。有了準確的數據源就奇貨可居賺點小錢,可是發揚合作精神,集體貢獻眾人享用是我們追求的。
第一步:下載 GeoIP 庫
訪問 GeoIP 官網下載離線文件://geoip.com
下載後上傳到部署Nginx所在的服務器,上傳方式可以使用wscp等。我上傳的目錄為Centos7.6服務器的 /usr/local/share/GeoIP,上傳成功後,執行如下命令解壓
cd /usr/local/share/GeoIP
tar -zxvf GeoIP-1.4.8.tar.gz
第二步:編譯,安裝
執行如下命令
cd /usr/local/share/GeoIP/GeoIP-1.4.8
./configure && make && make install
第三步:配置 Nginx
首先進入Nginx文件夾sbin下查看是否已經安裝了GeoIP模塊
./configure --prefix=/usr/local/nginx --with-http_geoip_module && make && make install
使用 GeoIP 定位
GeoIP + PHP的使用
include("geoip.inc.php");
// 打開數據文件
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// 獲取國家代碼
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country code is: $country_code ";
// 獲取國家名稱
$country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country name is: $country_name ";
// 關閉文件
geoip_close($gi);
完工!
最後安利一下我這個程序員業餘肝出來的產品,在線使用和完整下載私有化部署都是免費的,希望對你有用,謝謝!
免費使用 & 私有化部署://kf.shengxunwei.com
私有化版下載地址與版本說明: 📩
//docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/553293a8-dfa1-4282-bc3f-96c6c623fc9a