Моя версия:
#!/bin/bash
if [ ! -f "/suid.old" ]; then # note: !
find / -perm -4000 -o -perm -2000 -ls > /suid.old # note: dash before ls; slash before file
else
find / -perm 4000 -o -perm -2000 -ls > /suid.new
diff /suid.old /suid.new > /newchanges.list
mv /suid.new /suid.old # could be handy
fi
Нет, они являются абсолютно неправильными.
На самом деле это - допустимый IP-адрес: 192.168.24.0
Как 167.23.0.1
.
Разделение IP-адреса в точечные сегменты является чисто человеческим удобством для дисплея. Намного легче помнить 192.168.1.42
чем 3232235818
.
Какие вопросы к компьютерам разделение (сетевая маска). Это не допустимо, чтобы иметь адрес узла с разделом хоста набора адреса полностью к 0 или 1.
Так, 192.168.24.0, пока сетевая маска такова, что некоторые биты установлены в части хоста. Посмотрите следующие вычисления:
michael@challenger:~$ ipcalc 192.168.24.0/16
Address: 192.168.24.0 11000000.10101000. 00011000.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000
HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001
HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111
Hosts/Net: 65534 Class C, Private Internet
В этом случае часть адреса (правая сторона) имеет набор на 2 бита. Это - допустимый адрес узла в 192.168.0.0/16 подсети.
michael@challenger:~$ ipcalc 192.168.24.255/16
Address: 192.168.24.255 11000000.10101000. 00011000.11111111
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000
HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001
HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111
Hosts/Net: 65534 Class C, Private Internet
В этом случае часть адреса имеет набор на 10 битов и сброс на 6 битов. Это - другой допустимый адрес узла в той же подсети.
michael@challenger:~$ ipcalc 192.168.24.0/24
Address: 192.168.24.0 11000000.10101000.00011000. 00000000
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.24.0/24 11000000.10101000.00011000. 00000000
HostMin: 192.168.24.1 11000000.10101000.00011000. 00000001
HostMax: 192.168.24.254 11000000.10101000.00011000. 11111110
Broadcast: 192.168.24.255 11000000.10101000.00011000. 11111111
Hosts/Net: 254 Class C, Private Internet
В этом случае часть адреса имеет нулевой набор битов. Это не допустимый адрес узла в 192.168.24.0/24 сети.
Если я не неправильно понимаю, Ваши тестеры мертвы неправильный. Допустимые IP-адреса могут, конечно, иметь 0 в них.
Скажем, Вам нужны 510 адресов IP в одном диапазоне, и Ваш сетевой адрес 192.1.1.0, у Вас была бы/23 подсеть, которой один из Вашего IP хоста является.0 IP-адресами, Ваши тестеры неправы, если эти.0 адресов являются адресом узла. Если бы у Вас есть/24 сеть, было бы правильно сказать, что это было неправильно.
В целом: Нет, не имеет значения, если существует 0 в адресе или нет.
Однако существует мелкая частица истины в том, что говорят Ваши тестеры. В некоторых случаях старое или поврежденное сетевое оборудование не будет работать правильно над адресами с 0 в последних октетах. Это происходит из-за старых classfull правил маршрутизации. В маршрутизации Classfull можно сказать сетевую маску от первого октета адреса. Если оборудование все еще будет следовать за classfull правилами маршрутизации, то оно, вероятно, обработает адрес как 200.100.1.0/16 неправильно.
Предоставлять очень простой ответ: Один или несколько нулей в IP-адресе совершенно допустимы для адресов узла, пока те адреса не являются сетевым или широковещательным адресом.
Сетевые и широковещательные адреса являются допустимыми IP-адресами, они просто не применимы хостами.
Если сетевой диапазон содержит более 256 адресов IPv4, некоторые из них будут содержать один или несколько нулей. Поскольку IPv4-адреса являются бесклассовыми, вы можете использовать sipcalc
для проверки.
user@linux:~ # sipcalc 10.1.0.0/8 | grep "Usable range"
Usable range - 10.0.0.1 - 10.255.255.254
user@linux:~ # sipcalc 10.0.0.1/8 | grep "Usable range"
Usable range - 10.0.0.1 - 10.255.255.254
user@linux:~ # sipcalc 10.0.1.0/8 | grep "Usable range"
Usable range - 10.0.0.1 - 10.255.255.254