Редактирование 2 (в нашем разговоре):
Посмотрим, работает ли это лучше для вас (с более подробной информацией):
nmap -p 22 --open -sV 192.168.1.0/24
Как и прежде, добавьте awk
, если вам нужен только IP:
nmap -p 22 --open -sV 192.168.1.0/24 |
awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
где:
nmap : the executable name
-p 22 : specifies the port to test
--open : suppress output for clients that are not listening
-sV : display the version string reported by the scanned server
Edit:
Если вы пытаетесь получить весь ipaddress в сети, с которым потенциально может общаться локальная машина, попробуйте nmap
:
nmap -sP -PA21,22,25,3389 192.168.1.1-254 |
awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
Я пытаюсь попасть на пользовательский диапазон портов, чтобы проверить, работают ли серверы -PA21,22,25,3389
(в широковещательной сети 192. 168.1.1-254
) вы можете изменить это, если у вас есть определенный порт, который вы, возможно, знаете, что пытаетесь ударить. Вы можете удалить awk
, если вам нужно больше, чем просто ipaddresses, он также распечатает имя хоста и т.п.
Если вам нужны только IP-адреса сервера из ifconfig
, вы можете просто запустить:
ifconfig | awk '/inet addr/{print substr($2,6)}'
[OR]
/sbin/ifconfig | awk '/inet addr/{print substr($2,6)}'
Это приведет к следующим результатам:
10.0.0.XX1
10.0.0.XX2
10.0.0.XX3
127.0.0.1
Чтобы удалить localhost - 127.0.0. 1
из результатов use:
ifconfig | awk '/inet addr/{print substr($2,6)}' | awk '!/127.0.0.1/'
Result:
192.168.1.XXX
Вы можете поместить эту строку в скрипт как есть и запустить её на локальных машинах для получения ip-адресов, или вы также можете поместить её в скрипт shell для получения удалённых адресов через ssh
, например:
#!/bin/sh
#getremoteips.sh
#chmod 700 getremoteips.sh ##Root should only be running this
ssh $1 "/sbin/ifconfig |
awk '/inet addr/{print substr(\$2,6)}' |
awk '!/127.0.0.1/'"
И запустить скрипт: ./getremoteips.sh <введите имя хоста или ip>
Из Написать (2) ,
ошибок
⋮
Eaudain или EWOLDBLOCK
Файловый дескриптор FD относится к розетке и был отмечен неблокированием ( O_NONBLOCK ), И написать бы заблокировать. POSIX.1-2001 позволяет возвращать либо ошибку для этого случая, и не требует этих констант иметь одинаковое значение, Таким образом, портативное приложение должно проверить как возможности.
Другими словами, написать
, вернет -1,
С errno
установлено либо EAGAIN
, либо ewouldblock
.
(И, конечно же, данные в буфере не отправляются.)