| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Сокеты: узнать готов ли сокет для чтения, записи? |
| Автор: Alca 26.8.2010, 15:16 |
| Сокеты: узнать готов ли сокет для чтения, записи? Т.е. есть TCP-сервер, надо узнать открыт у него определенный порт или нет? Кроме как через connect. |
| Автор: Alca 26.8.2010, 15:47 |
| http://nmap.org.ua/nmap15.html |
| Автор: Олег2005 26.8.2010, 19:37 |
| Ну, в общем говоря - сокет!= порт. Порт - это целое число, идентификатор, который присваивается либо программистом (или системой) конкретной программе. Загружена программа и работает - открыт порт. По номеру порта система определяет, какой программе предназначен тот или иной TCP/UDP сегмент/пакет. Только и всего...... А NMAP - хороший продукт....... |
| Автор: Alca 27.8.2010, 09:05 | ||
А по делу? |
| Автор: sdukshis 27.8.2010, 09:13 |
| Можно. Но для этого придется отказаться от услуг транспортного (и возможно сетевого) уровней ОС и самостоятельно формировать пакеты. Такой способ гораздо сложнее чем обычный connect(), но зато позволяет проводить различное сканирование портов (SYN, FIN, etc). Для ознакомления рекомендую почитать Стивенса "Разработка сетевых приложений под UNIX" http://www.books.ru/shop/books/460327. |
| Автор: Alca 27.8.2010, 10:21 |
| аналогичный топик: http://www.codeguru.com/forum/showthread.php?t=324388 |
| Автор: Олег2005 29.8.2010, 22:32 |
я собственно "дела" - не могу распознать........ Если вопрос о том, как понять что сокет готов не готов - это совершенно одно. Если NMAP ? ну и что насчет него? Если насчет сканирования портов? Так это в принципе описано - делаем свои TCP-хедеры самых разных видов - и шлем по рав-сокету куда хотим..... Т.е. - в чем истинный смысл проблемы? |
| Автор: Alca 29.8.2010, 22:38 | ||||
|
| Автор: Олег2005 29.8.2010, 22:56 |
| Единственный вариант - сделать коннект по этому IP-адресу - на этот конкретный порт. Если у сервера есть прослушивающий сокет - и сервер работает - то на клиент придет SYN-сегмент. Если порт неизвестен - то обычный перебор - всех портов - или выборочно. Бомбят. Так делают хакеры...... |
| Автор: Alca 29.8.2010, 23:04 |
| все-таки connect? (порт известен) |
| Автор: Sartorius 29.8.2010, 23:10 |
| В общем случае нужно коннектиться конечно. Если имеем дополнительную информацию о системе или, тем более, доступ, тогда возможны варианты... Еще можно предложить анализ пакетов идущих от/к целевой машине, если есть возможноть сниффить траффик. Все зависит от конкретной ситуации |
| Автор: Олег2005 29.8.2010, 23:12 |
Это TCP Тут без вариантов...... |
| Автор: Alca 29.8.2010, 23:14 |
| Спасибо |
| Автор: Sartorius 29.8.2010, 23:21 |
| Теперь понятна ссылка на nmap. Вот неплохое описание Idlescan на русском http://planetsecurity.org.ua/network/164-skanirovanie-vholostuy-idlescan.html Попытка коннекта тут тоже есть, но наш IP надежно скрыт от цели |
| Автор: Alca 20.7.2011, 10:19 |
| Port Scan in C (linux): http://www.systhread.net/texts/200904netconn1.php http://www.systhread.net/texts/200906netconn2.php http://www.systhread.net/texts/200908netconn3.php http://www.systhread.net/texts/200909netconn4.php http://www.systhread.net/texts/201001netconn5.php |
| Автор: boostcoder 21.7.2011, 12:08 |
| http://forum.vingrad.ru/forum/topic-307927.html |