ホームページ > 記事 > ウェブフロントエンド > シェル コマンド ラインを使用してローカル IP アドレスを取得します
Mac で ifconfig
と入力するか、linux
で ip a
と入力します。ネットワークカード情報。ただし、通常、確認する必要があるのは IP アドレスであり、それほど多くの情報は必要ありません。そこで、この情報を抽出したいと思います。 ifconfig
或者在 linux
下面输入 ip a
就可以得到我们的网卡信息。不过通常情况下,我们需要查看的是我们的IP地址,不需要这么多的信息。所以,我想把这些信息给摘取出来。
我们输入 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
好,已经精简很多了。
我们再排除掉 inet6
和 127
的信息,就可以得到我们的本地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
不使用 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'
ifconfig
と入力すると、必要な IP アドレスの前の文字列が であることがわかります。 >inet
それでは、次のようにコードを最適化しましょう: 🎜rrreee🎜次の情報を取得します: 🎜rrreee🎜 さて、かなり合理化されました。 🎜🎜その後、inet6
と 127
の情報を除外すると、ローカル IP を取得できます🎜rrreee🎜Get🎜rrreee🎜 最初のものはタブ文字です。もちろん、スペースで区切って 2 番目のフィールドを取得して IP 情報を取得します 🎜rrreee🎜 そうすれば、必要な他のローカル IP アドレスを正常に取得できます。 🎜🎜~/.bin/
の下に getip
ファイルを作成し、chmod +x ~/.bin/getip
を使用して実行権限を付与します。次に、コマンドラインに getip
と入力してローカル IP を取得します。 🎜🎜最初に ~/.bin/
を環境変数として設定する必要があります。このコマンドをいつでも実行できるシステム コマンドとして使用する方法を参照してください。🎜🎜
linux
情報を取得するために ifconfig
コマンドを使用する代わりに、次のコマンドを使用します。 ip a
を取得します。 🎜🎜そこで、上記のコマンドを🎜rrreeeに修正しました🎜Linuxで取得する情報の先頭がタブ文字ではなくスペースなので、sed 's/^[ t]*/ /g'を追加しました。 code> を使用して先頭のスペースを削除します。 🎜🎜他のロジックも同様です。必要に応じてグローバルにすることもでき、ロジックは基本的に Mac と同じです。 🎜
以上がシェル コマンド ラインを使用してローカル IP アドレスを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。