Est*_*spi 4 networking script bash
我想用给定远程主机的 IP 地址设置一个环境变量。这是我到达的解决方案:
export IP=`curl http://network-tools.com/default.asp?host=www.example.com |
grep -oE '<br>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' |
cut -c5-`
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我有几个问题:
尝试类似的东西
export IP=`( dig ${HOSTNAME} A +short | tail -n1; \
dig ${HOSTNAME} AAAA +short | tail -n1 ) \
| head -n1`
Run Code Online (Sandbox Code Playgroud)
这会给你:
如果您不需要 IPv4 或 IPv6 功能(您的问题似乎表明您最感兴趣的是 IPv4 地址),只需删除该dig命令(A是 IPv4,AAAA是 IPv6)。因此,如果您只对 IPv4 地址感兴趣:
export IP=`dig ${HOSTNAME} A +short | tail -n1`
Run Code Online (Sandbox Code Playgroud)
在tail -n1你得到一个IP地址确保(在的情况下CNAME,和其他可能的记录类型,dig输出的第一行引用的规范名称)。通过head -n1仅返回剩余输出的第一行(在只有一个地址族的情况下是不必要的,因为tail将只返回一个地址),确保您只获得一个地址。由于 DNS 记录通常以循环方式提供服务,因此无法保证为多地址主机返回哪个确切地址。
我对编写 bash 函数不太熟悉,但是将其转换为函数应该相对容易。
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |