>  기사  >  웹 프론트엔드  >  셸 명령줄을 사용하여 로컬 IP 주소 얻기

셸 명령줄을 사용하여 로컬 IP 주소 얻기

一个新手
一个新手원래의
2017-09-07 15:22:524719검색


쉘 명령줄을 사용하여 로컬 IP 주소를 얻으세요

mac에서 ifconfig를 입력하거나 linux에서 ip a를 입력하세요. 네트워크 카드 정보. 하지만 일반적으로 우리가 확인해야 할 것은 IP 주소이므로 그다지 많은 정보가 필요하지 않습니다. 그래서 이 정보를 추출하고 싶습니다. ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息。不过通常情况下,我们需要查看的是我们的IP地址,不需要这么多的信息。所以,我想把这些信息给摘取出来。

mac ifconfig 下面的实现

我们输入 ifconfig 会得到大段的信息,我们可以看到我们想要的IP地址前面的字符串是 inet

所以,我们优化一下代码如下:

ifconfig | grep inet

得到如下信息:

    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet6 fe80::85e:9798:4041:1717%en0 prefixlen 64 secured scopeid 0x4
    inet 192.168.12.139 netmask 0xffffff00 broadcast 192.168.12.255
    inet6 fd86:415c:c5f9::c72:1c02:f044:65de prefixlen 64 autoconf secured
    inet6 fd86:415c:c5f9::cd76:7bb1:f77d:46f0 prefixlen 64 deprecated autoconf temporary
    inet6 fd86:415c:c5f9::508d:685b:6a66:b3ce prefixlen 64 autoconf temporary
    inet6 fe80::9446:a1ff:fe5e:9b8f%awdl0 prefixlen 64 scopeid 0x9
    inet6 fe80::9d71:6fa:3da5:9cb6%utun0 prefixlen 64 scopeid 0xa

好,已经精简很多了。

我们再排除掉 inet6127 的信息,就可以得到我们的本地IP了

ifconfig | grep inet | grep -v inet6 | grep -v 127

得到

    inet 192.168.12.139 netmask 0xffffff00 broadcast 192.168.12.255

最前面是一个制表符,我们不管,我们用空格分割,并取第二个字段,就可以得到我们的IP信息了

ifconfig | grep inet | grep -v inet6 | grep -v 127 | cut -d ' ' -f2

就顺利的得到另外我们想要的本机IP地址。

我们在 ~/.bin/下面创建一个 getip 的文件,并用 chmod +x ~/.bin/getip 赋予执行权限。然后在命令行里输入 getip 就可以得到我们的本机IP了。

需要先把 ~/.bin/ 配置为环境变量,请参考 将这个命令作为一个系统命令,可以随时执行

在 linux centos 7 下面实现获取本机IP的脚本

linux 不使用 ifconfig 命令来获取信息,而是使用 ip a 来获取。

所以我们把上面的命令修改一下,改成

ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2

由于 linux 中得到的信息的最前面不是制表符而是空格,所以加上了 sed 's/^[ t]*//g'

아래 Mac ifconfig 구현

ifconfig를 입력하면 우리가 원하는 IP 주소 앞의 문자열이 라는 것을 알 수 있습니다. >inet

그래서 다음과 같이 코드를 최적화해 보겠습니다. 🎜rrreee🎜다음 정보를 얻으세요: 🎜rrreee🎜좋아, 많이 간소화되었습니다. 🎜🎜그런 다음 inet6127의 정보를 제외하고 로컬 IP를 얻을 수 있습니다.🎜rrreee🎜Get🎜rrreee🎜첫 번째는 탭 문자입니다. 문제가 발생하면 공백으로 구분하고 두 번째 필드를 사용하여 IP 정보를 얻습니다. 🎜rrreee🎜 그러면 원하는 다른 로컬 IP 주소를 성공적으로 얻을 수 있습니다. 🎜🎜~/.bin/ 아래에 getip 파일을 생성하고 chmod +x ~/.bin/getip를 사용하여 실행 권한을 부여합니다. 그런 다음 명령줄에 getip를 입력하여 로컬 IP를 가져옵니다. 🎜
🎜먼저 ~/.bin/를 환경 변수로 설정해야 합니다. 이 명령을 언제든지 실행할 수 있는 시스템 명령으로 사용하는 것을 참고하세요🎜🎜

Linux Centos 7에서 다음은 로컬 IP

🎜linux를 얻기 위한 스크립트를 구현합니다. 정보를 얻기 위해 ifconfig 명령을 사용하는 대신 다음을 사용하십시오. ip a를 통해 정보를 얻으세요. 🎜🎜그래서 위 명령을 🎜rrreee🎜로 수정했습니다. Linux에서 얻는 정보의 앞부분이 탭 문자가 아니라 공백이므로 sed 's/^[ t]*/ /g'를 추가했습니다. code> 선행 공백을 제거합니다. 🎜🎜다른 논리도 마찬가지입니다. 원하는 경우 전역으로 만들 수도 있으며 논리는 기본적으로 Mac과 동일합니다. 🎜

위 내용은 셸 명령줄을 사용하여 로컬 IP 주소 얻기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.