如何以跨平台兼容的方式从Bash获取当前计算机的IP地址?对于Windows Linux和Mac OS,我需要以相同的方式获取IP地址。
我当前正在使用docker-compose
创建完整部署的本地版本,但是我无法使用localhost或127.0.0.1来访问它,我必须引用当前计算机的IP地址,例如{ {1}}
当前,我让用户手动设置IP地址:
curl 192.168.0.23:80
但是,我希望能够在无需用户设置任何环境变量的情况下获得此功能,尤其是在处理Windows计算机时。
有什么想法吗?
答案 0 :(得分:0)
由于操作系统特定的命令,您需要在使用以下主机之前先检测主机
Windows(Cygwin命令行)
LOCAL_IP=${LOCAL_IP:-`ipconfig.exe | grep -im1 'IPv4 Address' | cut -d ':' -f2`}
MacOS
LOCAL_IP=${LOCAL_IP:-`ipconfig getifaddr en0`} #en0 for host and en1 for wireless
Linux
LOCAL_IP=${LOCAL_IP:-`ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'`}