首页 > 其他分享 >原来可以用代码这样查询IP归属地

原来可以用代码这样查询IP归属地

时间:2023-08-27 16:31:46浏览次数:39  
标签:tar IP 归属 查询 golang nali go Nali

哈喽,大家好,我是指北君

最近各大社交媒体平台都发布了显示用户IP归属地的功能,有同学可能还不知道如何查询自己的IP归属地,其实很简单,你只需要打开Web浏览器,用百度搜索“IP归属地”就能显示自己的当前归属信息。

原来可以用代码这样查询IP归属地 _golang

以上是使用网页的方式,有没有使用代码获取的方式?如果自己的公司也要求加一个类似这种的功能,有没有什么接口免费的可以调用?以下就是指北君要为大家介绍的开源工具:

Nali:一个查询IP地理信息和CDN提供商的离线终端工具。

简介

“Nali”和 ”哪里”谐音,是对IP地理信息和CDN服务提供商进行查询。该工具是作者受“Nali-C语言版本”和“Nali-cli js版本”的启发而开发的。因为原初版的C语言版功能缺失,并已不再更新,而js版的包实在大的恐怖,查询速度不太快,所以该新版“Nali”使用了go语言(golang)重写,它不仅在原有功能的基础上增加了对IPv6的支持,并且还增加了Geoip2数据库等其它功能。

原来可以用代码这样查询IP归属地 _navicat_02

安装使用

现在我们来看看如何安装并使用它。

一、创建放置目录,避免和其它文件混淆:

mkdir Nali && cd Nali

二、下载以下这两个文件到Nali目录:

Nali要求安装的golang版本必须至少为1.18或以上。

# 下载golang v1.18.1
wget https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz

# 下载 nali 安装包
wget http://crm.wxaip.frx360.com/BlogImage/assets/feng/Nali/files/nali-0.2.tar.gz

三、安装golang v1.18.1

如果之前已安装过golang,并且不符合版本要求,请先卸载

apt-get purge golang-go

解压到官方推荐的目录“/usr/local”:

tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz

使用vim编辑profile文件,添加环境变量:

#如果已安装了vim请跳过
sudo apt-get install vim

#用vim打开profile
sudo vim /etc/profile

#在键盘上输入 i 字母进行编辑,移动到文件最后,添加以下两行代码
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

#在键盘上按 Esc 键退出编辑模式,然后输入 :wq 这3个符号进行保存并退出

验证golang是否安装成功:

go version

四、安装并调用Nali

解压并编译Nali的代码:

>tar xf nali-0.2.tar.gz
>cd nali-0.2
>./configure 
>make
>make install

Nali解析单个IP:

>nali 219.141.136.10
#输出:219.141.136.10[北京市 电信]

原来可以用代码这样查询IP归属地 _IP_03

指北君有话说

Nali是一个很优秀的开源项目,上面只是抛砖引玉,如果你感兴趣,可以继续学习哦。

关注公众号 [程序员了不起]回复[eee113] 即可获取navicat绿版


标签:tar,IP,归属,查询,golang,nali,go,Nali
From: https://blog.51cto.com/u_16231677/7253692

相关文章

  • vue项目打包之后, 生成一个可修改IP地址的文件
     在做项目的时候遇到了一个问题,就是把项目部署到不同的服务器上,但不能每次修改IP的时候就打包一次,这就增加了前端的工作量,经过百度,发现有一些方法是可以的,亲测可用。具体操作是,1,在static文件夹下面建立一个config.js文件, 1234567(function (){ ......
  • 哪些行业都可以用高防ip
    高防IP适用于电商、金融、政府、媒资、教育、企业门户等网站类场景的DDoS攻击防护,恶意竞争对手可以通过攻击等手段让您的业务瘫痪用户无法访问,最终导致用户流失。高防ip可以防御各种游戏类的DDoS攻击,且对用户体验实时性要求较高的场景,快速发现攻击,启动清洗,保证游戏业务的安全。1、......
  • django 解决queryset惰性机制,实现实时查询
    django在第一次查询后,就把数据进行缓存。如果对数据进行操作后,再进行查询时直接去缓存中取而不去数据库查询,对于想要实时数据时这并不友好。在百度后解决方案如直:classTodayRecordView(viewsets.ModelViewSet):serializer_class=OrderRecordSerializerpagination_c......
  • 顺序表的定义、初始化、及插入、删除、查询操作,将算法转化成具体的代码
    #include<iostream>usingnamespacestd;#defineLIST_INIT_SIZE100#defineLISTINCREMENT10intOK=1;intOVERFLOW=0;intERROR=0;/*线性表的定义*/typedefstruct{char*elem;intlength;//当前长度intlistsize;//线性表的长度}S......
  • JavaScript的变量提升
    参考资料:https://time.geekbang.org/column/article/126339目录变量提升变量形式声明的函数变量提升导致的问题变量被覆盖变量不被销毁避开变量提升引入let和const关键字块级作用域变量提升是在代码执行时,把变量和函数的声明部分提升到代码开头的行为,变量被提升后,会被默认设置......
  • hibernate——两种查询方式
    一种是hql语句查询,用Query接口去实现;一种是条件查询,用Criteria接口去实现。这两种方式作用差不多,只是后者更符合面向对象一些。用hql语句查询,如下例:publicstaticvoidquery(Stringname){ Sessionsession=null; try{ session=HibernateUtil.getSession(); //St......
  • 最完美WIN10_Pro_22H2.19045.3393软件选装纯净特别版VIP52.0
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN10_PRO_22H2.19045.3393。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为19045.3393。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • iptables简介
    DESCRIPTION      Iptablesisusedtosetup,maintain,andinspectthetablesofIPv4packetfilterrulesintheLinuxkernel. Severaldifferenttablesmay      bedefined. Eachtablecontainsanumberofbuilt-inchainsandmayalsocont......
  • 数据库基本语法四 数据库查询(DQL)
    数据查询语言(DQL)是SQL语言中的一部分,主要用于查询数据库中的数据。DQL允许用户根据特定的条件来检索表中的数据,并且可以包含一些基本的操作和条件。语法结构:SELECT列名称1,列名称2FROM表名称;其中,SELECT指定要检索的列,FROM指定要查询的表,WHERE指定筛选条件。以下是一些......
  • JavaScript中的不可变原始值和可变对象引用
    在JavaScript中,原始值(undefined、null、布尔值、数字和字符串)与对象(包括数组和函数)之间存在着根本的区别。原始值是不可变的,意味着它们的值无法改变。这对于数字和布尔值很容易理解:修改它们的值是没有意义的。然而,对于字符串来说,这可能会稍微不太直观。由于字符串类似于字符数组,可......