BashにどのくらいのIPがあるかを計算する方法は?

BashにどのくらいのIPがあるかを計算する方法は?

BashにどのくらいのIPがあるかを計算する方法を知っている人はいますか?

例: コマンド:

root@ubuntu:~$ dig www.google.com A +short | grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"

たとえば、私は得る

114.114.114.114
114.114.115.115
8.8.8.8
etc...

次のように特定のコマンドを実行したいと思います。

N IPs found in DNS

(Nは返されたIPの数)

また、これらのIPを複数の変数に分割したいと思います。

$a="114.114.114.114"
$b="115.115.115.115"
$c="8.8.8.8"
$N="x.x.x.x"

これを行う方法を知っている人はいますか?

答え1

配列を使用して結果を取得し、配列要素の数を使用してN IPs found in DNS行を表示できます。配列を繰り返すか、配列の特定の要素を使用することもできます。

#!/bin/bash

myarray=( $(dig www.google.com A +short | grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" ) )
echo "${#myarray[@]} IPs found in DNS"

for IP in ${myarray[@]}
do
    echo IP: $IP
done

echo "The third entry found in DNS is: ${myarray[2]}"

答え2

IPを計算するには、|wc -lコマンドの最後に追加します。

関連情報