如何从bash脚本确定IP地址?

时间:2018-11-02 05:37:26

标签: linux windows bash

如何以跨平台兼容的方式从Bash获取当前计算机的IP地址?对于Windows Linux和Mac OS,我需要以相同的方式获取IP地址。

我当前正在使用docker-compose创建完整部署的本地版本,但是我无法使用localhost或127.0.0.1来访问它,我必须引用当前计算机的IP地址,例如{ {1}}

当前,我让用户手动设置IP地址:

curl 192.168.0.23:80

但是,我希望能够在无需用户设置任何环境变量的情况下获得此功能,尤其是在处理Windows计算机时。

有什么想法吗?

1 个答案:

答案 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'`}