0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设置环境变量NALI_HOME如何指定工作目录

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2022-07-01 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

起源

该工具受 Nali C版本 和 nali-cli js版本的启发.

我想要在终端对IP地理信息和CDN服务提供商进行查询,发现了Nali这个工具,Nali与哪里谐音,非常适合这类工具

经过简单的使用,我发现最初的C语言版本功能缺失,而js版本包实在大的恐怖、而支持的平台非常有限,所以我用golang重写了这个工具,在原有功能的基础上增加了对IPv6的支持,并且增加了Geoip2数据库。开源前哨注:这个开源工具搭配离线IP数据,对于需要根据IP查询对应地址的场景,非常方便实用。

项目地址

https://github.com/zu1k/nali

功能

支持多种数据库

纯真 IPv4 离线数据库

ZX IPv6 离线数据库

Geoip2 城市数据库 (可选)

IPIP 数据库 (可选)

ip2region 数据库 (可选)

DB-IP 数据库 (可选)

IP2Location DB3 LITE 数据库 (可选)

CDN 服务提供商查询

支持管道处理

支持交互式查询

同时支持IPv4和IPv6

支持多语言

查询完全离线

全平台支持

支持彩色输出

安装

从源码安装

Nali 需要预先安装 Go >= 1.18. 安装后可以从源码安装软件:

$goinstallgithub.com/zu1k/nali@latest

下载预编译的可执行程序

可以从Release页面下载预编译好的可执行程序:Release[1]

你需要选择适合你系统和硬件架构的版本下载,解压后可直接运行

使用说明

查询一个IP的地理信息

$nali1.2.3.4
1.2.3.4[澳大利亚APNICDebogon-prefix网络]

或者 使用管道

$echoIP6.6.6.6|nali
IP6.6.6.6[美国亚利桑那州华楚卡堡市美国国防部网络中心]

同时查询多个IP的地理信息

$nali1.2.3.44.3.2.1123.23.3.0
1.2.3.4[澳大利亚APNICDebogon-prefix网络]
4.3.2.1[美国新泽西州纽瓦克市Level3Communications]
123.23.3.0[越南越南邮电集团公司]

交互式查询

使用exit或 quit退出查询

$nali
123.23.23.23
123.23.23.23[越南越南邮电集团公司]
1.0.0.1
1.0.0.1[美国APNIC&CloudFlare公共DNS服务器]
8.8.8.8
8.8.8.8[美国加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器]
quit

与dig命令配合使用

需要你系统中已经安装好 dig 程序

$dignali.zu1k.com+short|nali
104.28.2.115[美国CloudFlare公司CDN节点]
104.28.3.115[美国CloudFlare公司CDN节点]
172.67.135.48[美国CloudFlare节点]

与nslookup命令配合使用

需要你系统中已经安装好 nslookup 程序

$nslookupnali.zu1k.com8.8.8.8|nali
Server:8.8.8.8[美国加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器]
Address:8.8.8.8[美国加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器]#53

Non-authoritativeanswer:
Name:nali.zu1k.com
Address:104.28.3.115[美国CloudFlare公司CDN节点]
Name:nali.zu1k.com
Address:104.28.2.115[美国CloudFlare公司CDN节点]
Name:nali.zu1k.com
Address:172.67.135.48[美国CloudFlare节点]

与任意程序配合使用

因为 nali 支持管道处理,所以可以和任意程序配合使用

bashabc.sh|nali

Nali 将在 IP后面插入IP地理信息,CDN域名后面插入CDN服务提供商信息

支持IPv6

和 IPv4 用法完全相同

$nslookupgoogle.com|nali
Server:127.0.0.53[局域网IP]
Address:127.0.0.53[局域网IP]#53

Non-authoritativeanswer:
Name:google.com
Address:216.58.211.110[美国Google全球边缘网络]
Name:google.com
Address:2a00400e:200e[荷兰AmsterdamGoogleInc.服务器网段]

查询 CDN 服务提供商

因为 CDN 服务通常使用 CNAME 的域名解析方式,所以推荐与nslookup或者dig配合使用,在已经知道 CNAME 后可单独使用

$nslookupwww.gov.cn|nali
Server:127.0.0.53[局域网IP]
Address:127.0.0.53[局域网IP]#53

Non-authoritativeanswer:
www.gov.cncanonicalname=www.gov.cn.bsgslb.cn[白山云CDN].
www.gov.cn.bsgslb.cn[白山云CDN]canonicalname=zgovweb.v.bsgslb.cn[白山云CDN].
Name:zgovweb.v.bsgslb.cn[白山云CDN]
Address:103.104.170.25[新加坡]
Name:zgovweb.v.bsgslb.cn[白山云CDN]
Address:20016402:5[美国Louisiana州MonroeQwestCommunicationsCompany,LLC(CenturyLink)]
Name:zgovweb.v.bsgslb.cn[白山云CDN]
Address:20016402:6[美国Louisiana州MonroeQwestCommunicationsCompany,LLC(CenturyLink)]

用户交互

程序第一次运行后,会在工作目录生成配置文件config.yaml(默认~/.nali/config.yaml),配置文件定义了数据库信息,默认用户无需进行修改

数据库格式默认如下:

-name:geoip
name-alias:
-geolite
-geolite2
format:mmdb
file:GeoLite2-City.mmdb
languages:
-ALL
types:
-IPv4
-IPv6

其中,languages和types表示该数据库支持的语言和查询类型。如果你需要增加数据库,需小心修改配置文件,如果有任何问题,欢迎提 issue 询问。

查看帮助

$nali--help
Usage:
nali[flags]
nali[command]

AvailableCommands:
helpHelpaboutanycommand
updateupdateqqwry,zxipv6wry,ip2regionipdatabaseandcdn

Flags:
-h,--helphelpfornali
-t,--toggleHelpmessagefortoggle

Use"nali[command]--help"formoreinformationaboutacommand.

更新数据库

更新所有可以自动更新的数据库

$naliupdate
2020/07/171246正在下载最新纯真IP库...
2020/07/171205已将最新的纯真IP库保存到本地/root/.nali/qqwry.dat

或者指定数据库

$naliupdate--dbqqwry,cdn
2020/07/171246正在下载最新纯真IP库...
2020/07/171205已将最新的纯真IP库保存到本地/root/.nali/qqwry.dat

自选数据库

用户可以指定使用哪个数据库,需要设置环境变量:NALI_DB_IP4、NALI_DB_IP6或者两个同时设置

支持的变量内容:

Geoip2['geoip', 'geoip2']

Chunzhen['chunzhen', 'qqwry']

IPIP['ipip']

Ip2Resion['ip2region', 'i2r']

DBIP['dbip', 'db-ip']

IP2Location['ip2location']

Windows平台

使用geoip数据库

setNALI_DB_IP4=geoip

或者使用powershell

$env:NALI_DB_IP4="geoip"

使用ipip数据库

setNALI_DB_IP6=ipip

或者使用powershell

$env:NALI_DB_IP6="ipip"

Linux平台

使用geoip数据库

exportNALI_DB_IP4=geoip

使用ipip数据库

exportNALI_DB_IP4=ipip

多语言支持

通过修改环境变量NALI_LANG来指定使用的语言,当使用非中文语言时仅支持GeoIP2这个数据库

该参数可设置的值见 GeoIP2 这个数据库的支持列表

#NALI_LANG=ennali1.1.1.1
1.1.1.1[Australia]

更换工作目录

如果未指定数据库存放目录,数据库默认将存放在~/.nali

设置环境变量NALI_HOME来指定工作目录,数据库存放在工作目录下。也可在配置文件中使用绝对路径指定其他数据库路径。

setNALI_HOME=D:
ali

or

exportNALI_HOME=/var/nali

原文标题:太方便了!这款开源终端工具可查询 IP 信息 ...

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1885

    浏览量

    156736
  • 硬件
    +关注

    关注

    12

    文章

    3635

    浏览量

    69172
  • 终端
    +关注

    关注

    1

    文章

    1271

    浏览量

    31723
  • 数据库
    +关注

    关注

    7

    文章

    4084

    浏览量

    68549

原文标题:太方便了!这款开源终端工具可查询 IP 信息 ...

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度解析 RK 平台 U-Boot 环境变量(env):原理、配置与实战

    定制化设计。本文将从通用概念、RK 平台特殊处理、工作流程、调试方法等维度,全面拆解 RK 平台环境变量的底层逻辑与实操技巧。 一、环境变量的通用概念 1.1 什么是环境变量
    的头像 发表于 04-27 07:11 471次阅读
    深度解析 RK 平台 U-Boot <b class='flag-5'>环境变量</b>(env):原理、配置与实战

    飞凌嵌入式ElfBoard-环境变量之删除清空环境变量environ

    ,最后再尝试获取一下PATH的值来验证清空的情况;很多程序依赖于环境变量(例如 PATH、HOME),清空环境变量可能会导致某些功能失效。而且将 environ 赋值为 NULL 这种直接的做法,会
    发表于 03-26 10:23

    飞凌嵌入式ElfBoard-环境变量之删除清空环境变量clearenv

    int main() { // 设置环境变量 MY_VAR setenv(\"MY_VAR\", \"12345\", 1); // 验证环境变量
    发表于 03-26 10:22

    飞凌嵌入式ElfBoard-环境变量之添加修改环境变量setenv

    overwrite);3)参数name:需要添加或修改的环境变量名称。这个名称必须是有效的环境变量名,通常由字母、数字和下划线组成,且不能以数字开头。value:要设置环境变量的值
    发表于 03-26 09:24

    飞凌嵌入式ElfBoard-环境变量之添加修改环境变量putenv

    ;export [-fnp][变量名称]=[变量设置值参数说明:-f 代表[变量名称中为函数名称。-n 删除指定
    发表于 03-26 09:22

    飞凌嵌入式ElfBoard-环境变量之获取环境变量

    \", env); } return 0;}通过运行这个程序,可以遍历的输出当前进程的环境变量;2.getenv想要获取某个指定环境变量,可以使用 C 语言的标准库函数 getenv
    发表于 03-13 08:50

    ESP32-S3 工具链+环境配置的最终步骤清单

    ESP-IDF 目录下,双击运行 export.bat。 运行后终端会提示 All done! You can now compile ESP-IDF projects.,表示环境变量(包含工具链
    发表于 11-26 07:36

    NRF54L15芯片开发安装路径对vscode不生效问题解析

    相关文件夹,暂时移走或删除)。 重新打开 VS Code,重新安装 NRF Connect 扩展,启动后会重新读取配置。 4. 检查系统环境变量 nrfutil toolchain-manager
    发表于 10-31 13:04

    WIN10配置Hbird-SDK环境变量

    按照胡老师的《RISC-V CPU下工程与实践》的7.4的151和152页配置Hbird-SDK的环境变量,出现了问题。 问题如下: 首先创建setup_config.bat,之后CMD中运行
    发表于 10-27 06:38

    【HZ-T536开发板免费体验】5、安装sqlite3和使用golang读写数据库

    放进去。 mkdir $HOME/.bin cd $HOME/.bin tar xf $HOME/go1.25.0.linux-arm64.tar.gz 解压缩结束后,需要在环境变量
    发表于 08-26 00:04

    Window下AICube使用前如何配置dotnet环境

    缺少文件,下载下图相同版本的二进制文件,并解压,解压后的所有文件,拷贝到C:/Program Files/dotnet 目录下覆盖原有文件。如下图所示: 添加环境变量,Win+R快捷键唤起运行,输入
    发表于 08-04 06:19

    【HZ-T536开发板免费体验】2、SDK编译

    内核,为了偷懒,直接在.bashrc里设置环境变量ARCH=arm64和指定交叉编译器CROSS_PILE,结果导致编译Uboot时反复报错。报错的日志我找不到了,但是确实是因为我指定
    发表于 07-31 18:37

    【米尔RK3576开发板免费体验】1、开发环境、镜像烧录、QT开发环境搭建以及应用部署

    环境 source $HOME/.bashrc #使添加的环境变量 MYD3576_ENV 生效 source $MYD3576_BUILDROOT #使工具链配置脚本生效 执行build.sh脚本
    发表于 07-14 11:26

    飞凌嵌入式ElfBoard ELF 1板卡-uboot常用命令之环境变量命令

    uboot中环境变量的作用就是在不改变源码、不用重新编译的情况下,可以使我们通过设置环境变量的值来改变uboot的一些设置。uboot开机时会一次性从存储介质(启动介质)中读取全部的
    发表于 05-22 11:28

    ArkUI-X跨平台框架接入指南

    ANDROID_HOME设置Android SDK安装目录。 Windows环境变量设置方法: 在此电脑 > 属性 > 高级
    发表于 05-18 18:21