사용자가 어떤 네트워크 범위에 있는지 찾으십니까?

사용자가 어떤 네트워크 범위에 있는지 찾으십니까?

나는 모든 네트워크에서 작동하는 네트워크 스캐너를 만들고 있습니다. 이것은 지금까지 내 코드입니다

fd=$(date +%m%d%y%H%M%S)
echo -e "IP$fd\nReport of IP addresses on this intranet, test started at \n$(date)\n\nThe following IP addresses were found:" > IP$fd.txt
echo -e " Okay. Mind you, this could take a couple of minutes.\nI'll be scanning all 254 possibilities between 192.168.1.1 and 192.168.1.254\nI will ring the system bell when I am done.\nHere we go..."
for i in 192.168.0.{1..254}
do
echo "scanning $i"
if [ "$(ping -q -c1 $i)" ]
then
echo -e "AHA! Got one! ---- $i is up!"
fi
echo "END SCAN"
done
echo -e "That's all I got.\Test completed at\n$(date)\n" >> IP$fd.txt
echo -e \\a
echo -e "Your report is IP$fd.txt, and this is what it says:\n"
exit

문제는 IP 범위가 192.168.0.1-255인 경우에만 작동한다는 것입니다. IP가 10.10.10.1이면 아무것도 반환하지 않습니다.

어쨌든 사용자 네트워크 범위를 가져와 내 스크립트에 적용할 수 있습니까?

편집 : 루트로 실행 중입니다

답변1

휴대용 방법이 없습니다.

Linux에서는 다음을 사용하여 호스트가 속한 모든 IPv4 서브넷을 나열할 수 있습니다.

ip -4 route show scope link | awk '{print $1}'

(있을 수 있으니 참고하세요.하나 이상.)

답변2

출력에서 현재 네트워크 세부 정보를 추출할 수 있습니다.ifconfig -a

여기에서 for 루프에 대한 변수를 설정할 수 있어야 합니다. 점으로 구분된 쿼드보다는 정수 주소로 작업하는 것이 더 쉬울 수 있습니다.

여러 주소 범위가 있으며 그 중 일부는 IPV4이고 일부는 IPV6입니다.

현재 시스템이 직접 연결되지 않은 근처 네트워크를 감지하려면 더 많은 작업이 필요합니다.

관련 정보