シェル コマンド ラインを使用してローカル IP アドレスを取得します

一个新手
リリース: 2017-09-07 15:22:52
オリジナル
4686 人が閲覧しました


シェルコマンドラインを使用してローカル IP アドレスを取得します

Mac で ifconfig と入力するか、linuxip 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🎜 最初のものはタブ文字です。もちろん、スペースで区切って 2 番目のフィールドを取得して 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!