• .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外


    本系列文章详细介绍使用 .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 定位

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

    完工!

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

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

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


    支持请点个赞吧~ 谢谢!

  • 相关阅读:
    JFinal连接多个数据库
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) net start mysql服务名无效
    oracle中文显示为问号
    IDEA开发环境的设置约定
    WSL distro导入导出
    Linux服务器的x11图形模式方式远程管理参考
    WSL Linux 的 Windows 子系统[笔记]
    devops-cd之esxi和docker实战
    devops-cd之vagrant virtualbox实战
    ansible高级使用知识点
  • 原文地址:https://www.cnblogs.com/sheng_chao/p/15618987.html
Copyright © 2020-2023  润新知