linux中shell用nali查询ip后比对数据输出对应的地区的脚本怎么写

author author     2023-03-11     397

关键词:

数据1:北方地区列表.txt ;数据2:南方地区列表.txt 数据3:IP地址
用 “nali IP” 后会显示IP对应的地区,然后把这个地区在数据1与数据2中对比,然后显示出每个IP对应的是在南方地区还是北方地区(格式为:IP 所在城市 地区<南方/北方>),求喜欢linux shell脚本的高手

参考技术A 你这个问题有歧义,北方和南方数据既然已经在数据1和数据2里面了,干嘛还要对比呢?追问

。。。1 跟2是南方地区跟北方地区的列表,我是要根据查询IP显示的地址(湖北),去那2个表中找,最后会在数据2中找到湖北,就在此IP后面显示 湖北 南方,简单说来就是查找数据对比输出,可是不会写

参考技术B nali 是一个linux命令?追问

我晕。

追答

#!/bin/sh
IP=$1
diqu=`nali $IP | cut -d"[" -f2`
diqu=$diqu//]/
grep -v "^#" 北方.txt | grep $diqu > /dev/null
if [[ $? = 0 ]]; then
echo "$IP $diqu 地区"
fi
grep -v "^#" 南方.txt | grep $diqu > /dev/null
if [[ $? = 0 ]]; then
echo "$IP $diqu 地区"
fi

不过nali 查到的都是这类信息:
[root@puppetclient04 sh]# nali 202.120.2.101
202.120.2.101[上海交通大学 网络中心]

你列表里是什么格式。

追问

吉林
辽宁
。。。
是的 nali之后就是那个样子 然后再去表里对比输出
202.120.2.101[上海交通大学 网络中心] 南方
123.150.161.222[天津市 联通] 北方
这种格式的,可是还有一点,要是iplist里面的IP很多,nali输出之后就没有换行,全挤在一起了,怎么换行显示啊,每一行对应一条数据

追答

#!/bin/sh
iplist=`cat iplist`
for ip in $iplist
do
diqu=`nali $ip | cut -d"[" -f2`
diqu=`echo $diqu//]/ | cut -d" " -f1`
grep -v "^#" 北方地区列表.txt | grep $diqu > /dev/null
if [[ $? = 0 ]]; then
echo "$ip $diqu 地区"
fi
grep -v "^#" 南方地区列表.txt | grep $diqu > /dev/null
if [[ $? = 0 ]]; then
echo "$ip $diqu 地区"
fi
done

1、我不知道你说的iplist是什么形式的,在这我假设它是一个文件,里面存放的各种ip。
2、上面的shell还有一个问题,如果你的列表内只具体到城市而nali查出来的具体到了城市的某一区域,就显示不出来了。我没对nali查出来的内容做太多修改。
现在我只把用nali查出来的信息截取到: "上海交通大学" 、 "天津市" 这种程度。

本回答被提问者采纳

linux校验比对文件一致性的shell脚本

#!/bin/bashcheck_dir=/var/html/wwwzhiwendb="/opt/zhiwen.db"#原始指纹库路径filedb="/opt/wenjian.db"#原始文件库路径errlog="/opt/err.log"#监测后的内容日志[-e$check_dir]||exit1#目录不存在就退出脚 查看详情

怎样在linux的shell脚本中连接mongodb插入

...  showcollections;  切换数据库:  usedatabaseName;  查询数据:  db.集合名.find()  插入数据:  db.集合名.insert(name:\'test\',age:1);  删除:  db.test.remove();  sql="db.test.insert(name:\'test\',age:1);"//定义执行的sqlecho"$sql"|/... 查看详情

怎样在linux的shell脚本中连接mongodb插入

...dbs;查看集合命令:showcollections;切换数据库:usedatabaseName;查询数据:db.集合名.find()插入数据:db.集合名.insert(name:'test',age:1);删除:db.test.remove();3、如果想通过shell脚本实现一个日志分析并入库的操作,命令如下:sql="db.... 查看详情

如何查看连接到服务器的所有ip

...务器的命令终端后,在这里就可以使用获取ip地址命令来查询了。4.输入查询linux的ip地址的命令:ifconfig-a,然后回车。5.使用查看linux的ip地址命令后,就会在终端命令窗口里显示出ip地址。6.不想打开linux服务器来查看ip地址,我... 查看详情

java在linux中执行shell脚本,用telnet检测指定ip的端口是不是可以连接上

java在linux中执行shell脚本,用telnet检测指定IP的端口是否可以连接上。java中的代码是String[]cmdA="/bin/sh","-c",cmd;Processprocess=Runtime.getRuntime().exec(cmdA);然后获取process的流来分析结果。如果用"ping192.168.1.3-c10"作为cm... 查看详情

linux下安装完sybase数据库后,怎么连接呀,刚学sybase,还不会用

...库中增加一个用户sp_changegroup改变数据库用户组Sp_dboption查询或改变数据库系统设置Sp_dropdevice删除设备Sp_dropgroup删除组Sp_droplogin删除帐号Sp_help查询数据库对象及所有数据库信息Sp_helpdb查询数据库信息Sp_helpdevice查询设备信息Sp_helpg... 查看详情

linux下安装完mongoose之后用shell命令无法找到mongodb,提示我要用apt-

...题的资料。有人认为mongodb频繁宕机大多数是因为在并发查询的压力下,因为热数据没有在内存中,被迫到文件系统读取数据,很容易出现timeout的问题,之后会造成进程锁死,经过验证,如果把查询(只有通过主键查一条记录的... 查看详情

如何在linux中通过命令查看域名对应的ip

...址。解决方法有多种,既可以通过网上提供的域名反查IP查询工具查询,也可以在Linux系统中通过命令进行查询。本教程主要讲解如何在Linux系统中通过命令查看域名对应的IP地址,主要讲解以下5个命令:dig命令它是一个功能强大... 查看详情

linux下nmap扫描端口shell脚本

...常用)2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用-pport,port1……)3、-PS/PA/PU[portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机... 查看详情

用shell命令获取文件中某一行数据.比如第4行

tail命令看文件结尾部分,head看开头部分,sed可以看任意位置的文件内容。如果不懂linux的shell的话,可以找wo解决。以后要是遇到了linux方面的问题,都可以帮忙解决哦!参考技术Acattest|awk'NR==4'或cattest|sed-n'4p'(获取tes... 查看详情

系统登录模块用例的设计原理?

...三种:1.账号密码登录:服务器端收到数据,从数据库中查询看是否有当前账号,若没有则返回结果“查找不到当前账号”。若存在该账号,则获取当前账号存放在数据库中的盐值对当前密码进行加密,并将该加密后的密码与数... 查看详情

.net中怎么根据ip获取省市啊

...。然后进行比对,就可以了。 参考技术B你可调取ip138的查询接口去查询追问能具体点吗追答网上应该有接口的,最好是你自己把ip数据导入进来然后去关联地区本回答被提问者采纳 参考技术C去网上找接口呀 查看详情

linux怎么查询nohup的进程

在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了。Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行。比如要运行mysql在后台:复制代码代码如下:/usr/local/mysql/bin/mys... 查看详情

jmeter多行数据比对(无序);

页面(一定方式排序)返回一个JSON串,数据库查询相关数据(未排序); 1Jmeter——beanshell提取响应中的title值;1.1复制fastjson-1.2.68.jar到Jmeter的lib目录下;1.2TestPlan中添加json包的路径;  1.3beanshell中导入json包;1... 查看详情

已知ip和端口,用c语言怎么判断能不能连接网络

...口,用c语言怎么判断能不能连接网络,能连接网络,把数据发送给服务器。若不能连接网络,就把从客户端接收到的数据存到自己用c语言创建的文件中,等有网络后,再把缓存文件中的数据发送给服务器(JSON形式发送)持续建... 查看详情

用shell的linux服务器.sh插件怎么从远程ftp服务器下载文件

//ftpput.sh[cpp]viewplaincopy#!/bin/sh#FileName:ftpput.sh#Function:从本地客户端向ftp服务器上传一个文件#Version:V0.1#Author:Sunrier#Date:2012-07-20#$#表示传递给此Shell脚本的参数个数#-ne表示不等于if[$#-ne2]thenecho"Usage$0<local_dir/filename><remote_dir>"e... 查看详情

idea中合并代码

...下图    到此,代码合并完毕,接下来开始比对数据(右键表=>转储SQL文件=>结构和数据)//用sql文件备份这里用navicat选择“工具”=>“结构同步”进行比对,比对后直接选部署,不会清除表中的... 查看详情

megalign序列比较后怎么显示

...本相似,差异不大。MegAlign,ClustalX和MUSCLE都属于多序列比对的方法,ClustalX用的是累进算法进行比对,MUSCLE用的是迭代方法进行比对运算,MegAlign是累进和迭带都可以用。累进算法将最接近的序列进行多条序列比对,形成一个初... 查看详情