以下の内容はhttps://htn20190109.hatenablog.com/entry/2026/03/24/222553より取得しました。


IPがサブネットに含まれるか確認するシェル

https://jiro4989.github.io/tech/2024/04/21/check-ip-cidr.html

 

cat <<-'EOF' > "ip.txt"
192.166.1.1
192.170.1.1
192.177.1.1
EOF

cat <<-'EOF' > "cidr.txt"
192.168.0.0/13
10.0.0.0/8
EOF

ls -l
cat ip.txt
cat cidr.txt


cat <<-'EOF' > checkcidr.sh

#!/bin/bash

ip_to_int() {
  local IFS=.
  read -r o1 o2 o3 o4 <<< "$1"
  echo $(( (o1 << 24) + (o2 << 16) + (o3 << 8) + o4 ))
}


for ip in $(cat "$1") ; do
  for cidr in $(cat "$2") ; do
    network="${cidr%/*}"
    maskbits="${cidr#*/}"

    ip_int=$(ip_to_int "$ip")
    network_int=$(ip_to_int "$network")
    mask_int=$(( 0xFFFFFFFF << (32 - maskbits) & 0xFFFFFFFF ))

    if (( (ip_int & mask_int) == (network_int & mask_int) )); then
      echo ip="$ip" cidr="$cidr" "included=yes"
    else
      echo ip="$ip" cidr="$cidr" "included=no"
    fi
  done
done
EOF

 

ls -l
cat checkcidr.sh
chmod 777 checkcidr.sh

./checkcidr.sh ip.txt cidr.txt

 

 

 




以上の内容はhttps://htn20190109.hatenablog.com/entry/2026/03/24/222553より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14