因为这个Script最后会放在PI4和HTC U11 Ultra里,有另个先决条件,是必需要知道的,就是...这两个设备,连线之后,它的IP是多少。
所以在这张Cron Table里的第一个Script,get_ip.sh,就是通知我,这个设备取得的IP是多少。通知的方法是发LINE...要发Email也可以,但有点麻烦,我只是想知道IP是多少,看LINE就可以了。
在Linux 作业系统里,我的习惯是用 ifconfig 这个指令,来取得设备的IP,如下图,下图显示的是一般输入后的指令,我们可以透过画面显示内容,得知IP位置,但如果只要把IP传LINE给我呢?
这时候,我们需要再精确一点的指令,例如:ifconfig eth0 或 ifconfig wlan0。
ifconfig 网卡名称
会只显示我们指定的网卡,比上一个ifconfig的内容,还要再精简一些,但如果把这一堆文字,用LINE传给我...也不是不行,就...如果这样也能接受,这世界只要有iPhone第一代就好了...
从网路上查到,可以用grep -Eo ,取出需要的IP位置,
grep -E 是可以用正规化表示式寻找文数字。
grep -o 则是显示完整匹配的内容。
grep -Eo 就不再多解释了。
ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9].){3}[0-9]' 结果如下
好像还差一点,因为只需要IP位置,那就再来一次
ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9].){3}[0-9]' | grep -Eo '([0-9].){3}[0-9]',这样就可以了。
接下来就是,要在Shell Script里,将这个IP位置,放到参数里,语法如下:
get_net_ip=$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' )
除了有线网卡,无线网卡也可以用同样的方式,不过因为无线网卡,可能要在开机后,才会取得IP,所以,可以加个判断式,如下:
get_wlan_ip=$(ifconfig wlan0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')if test -z $get_wlan_ip then get_wlan_ip="还没找到可以自动取得的地方"fi
再一次说明,这个Shell Script是自己要用的,所以什么提示功能、防呆功能或重试功能...完全不考虑。
现在,我们有了两个变数可以使用,get_net_ip 和 get_wlan_ip。
最后一个步骤,就是把这两个变数,传送到我的LINE里,就算完成了。
至于如何从Linux发LINE给自己,网路上有许多相关文章...可以参考,如果觉得需要另外写一篇,这方面的介绍,欢迎通知我,我再找时间和大家讨论。
最后,PI4开机后的30秒时,便会执行这个get_ip.sh,设定如下:
@reboot sleep 30 && /root/script/get_ip.sh >/dev/null 2>&1
这一行的意思是,重开机后,先睡30秒,再执行get_ip.sh...
下一次,进入aircrack-ng程序...
(待)
更多文章,都在...『旅』http://www.it-taiwan.com
2019/11/26 SunAllen