java开发升讯威在线客服系统:使用本地ip数据库实现访客来源快速定位,支持国外(代码片段)

iccb1013 iccb1013     2022-12-09     793

关键词:

本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程。本产品已经成熟稳定并投入商用。

免费使用 & 私有化部署:https://kf.shengxunwei.com


视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡,拔掉网线的情况下,也不丢消息,不出异常。
https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53


随着系统的用户越来越多,陆续有客户向我提出反馈意见,关于访客 IP 地址定位的问题,之前我用的是百度 IP 定位的 API 接口,这种方式有几个比较大的问题:

  • 需要实名注册认证百度账户。
  • 只能定位国内IP地址,国外不支持。
  • 只有1000次/天的使用额度,有用户访客量较大之后,就只能显示成未知来源了。

随时用户的增多,特别是有些用户的访客量会话量很大,调用百度API定位也出现了明显的性能不足,并且百度限制了并发数量,不能并发请求。

只有一个办法,彻底放弃百度IP接口,通过离线IP数据库,自主查询定位了。本篇将详细介绍实现办法。

老规矩,先看看实现效果,已经可以定位海外IP:


下载安装 GeoIP

所谓 GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。

第一步:下载 GeoIP 库
访问 GeoIP 官网下载离线文件:https://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 定位

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);

完工!

最后安利一下我这个程序员业余肝出来的产品,在线使用和完整下载私有化部署都是免费的,希望对你有用,谢谢!

免费使用 & 私有化部署:https://kf.shengxunwei.com

私有化版下载地址与版本说明: 📩
https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/553293a8-dfa1-4282-bc3f-96c6c623fc9a

java开发升讯威在线客服系统:使用本地ip数据库实现访客来源快速定位,支持国外(代码片段)

...只有一个办法,彻底放弃百度IP接口,通过离线IP数据库࿰ 查看详情

.netcore和wpf开发升讯威在线客服系统:把.netframework打包进安装程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。系列文章目录:https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡... 查看详情

.netcore和wpf开发升讯威在线客服系统:把.netframework打包进安装程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。系列文章目录:https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡... 查看详情

详解升讯威在线客服系统前端javascript脚本加密技术(代码片段)

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。这段时间有几个技术小伙伴问了我一个有意思的问题:“你的前端脚本... 查看详情

linux+.netcore开发升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

...服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系统同时支持SQLServer和MySQL。为了简化安装部署过程,我开发了... 查看详情

linux+.netcore开发升讯威在线客服系统:首个经过实际验证的高性能版本

...系统。并在博客园写了一个系列的文章,写介绍这个开发过程:.netcore和WPF开发升讯威在线客服系统:目录https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be我把这款业余时间写的小系统丢在网上,陆续有... 查看详情

linux+.netcore开发升讯威在线客服系统:首个经过实际验证的高性能版本

...系统。并在博客园写了一个系列的文章,写介绍这个开发过程:.netcore和WPF开发升讯威在线客服系统:目录https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be我把这款业余时间写的小系统丢在网上,陆续有... 查看详情

升讯威在线客服系统客服端英文界面的实现方法(代码片段)

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。最近收到来自巴西客户的需求,希望为客服端增加英文界面。好,... 查看详情

升讯威在线客服系统客服端英文界面的实现方法(代码片段)

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。最近收到来自巴西客户的需求,希望为客服端增加英文界面。好,... 查看详情

linux运行升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

...服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系统同时支持SQLServer和MySQL。为了简化安装部署过程,我开发了... 查看详情

linux运行升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

...服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系统同时支持SQLServer和MySQL。为了简化安装部署过程,我开发了... 查看详情

.netcore和wpf开发升讯威在线客服系统:把.netframework打包进安装程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。系列文章目录:https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡... 查看详情

开发升讯威在线客服系统启示录:怎样编写堪比msdn的用户手册

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。免费在线使用&免费私有化部署:https://kf.shengxunwei.com文章目录列表请点击这里视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

开发升讯威在线客服系统启示录:怎样编写堪比msdn的用户手册

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。免费在线使用&免费私有化部署:https://kf.shengxunwei.com文章目录列表请点击这里视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

...系统。并在博客园写了一个系列的文章,写介绍这个开发过程。我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免费和分享,后来我索性就官方发了一... 查看详情

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

...系统。并在博客园写了一个系列的文章,写介绍这个开发过程。我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免费和分享,后来我索性就官方发了一... 查看详情

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

...系统。并在博客园写了一个系列的文章,写介绍这个开发过程。我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免费和分享,后来我索性就官方发了一... 查看详情

升讯威在线客服系统:客户收到攻击威胁勒索,我是如何保障客户安全的

本文记录了几个月前,客户在使用在线客服系统过程中,遭到勒索威胁,索要茶水费的事件。经过应对,快速的化解了攻击威胁,并继续安全使用至今。问题发现次日,收到报警,服务器CPU使用率持续... 查看详情