Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка - подключены ли клиенты к порту VNC 
V
    Опции темы
AzeriSoul
  Дата 10.4.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.4.2010
Где: Deutschland

Репутация: нет
Всего: нет



Здравствуйте. Предположим есть VNC сервер запущенный на каком-то порту. Каким образом можно программным образом определить, есть ли клиенты подключенные в данный момент к vnc по данному порту. Отмечу что речь идет именно о том подключены ли в данный момент клиенты к порту, а не открыт ли порт для потенциальных клиентов. Я подумал, что задачу ведь можно свести к тому чтоб получить список всех TCP соеденений по некоторому порту. Далее получить доступ к информации каждого из них. Как можно это сделать? Любые идеи приветствуются. Благодарю.

Это сообщение отредактировал(а) AzeriSoul - 11.4.2010, 18:06
PM MAIL   Вверх
AzeriSoul
Дата 13.4.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.4.2010
Где: Deutschland

Репутация: нет
Всего: нет



Столько просмотров и 0 ответов. Черт, или вопрос я задал неправильно, или "вопрос на миллион".  smile 
Покопался. Может кому-то поможет. Очевидно единственными 2 возможными вариантами является:
1) парсить результат работы линуксовской " netstat --tcp -n | grep 'port_number' " или какой другой проги, минусы - платформозависимо
2) использовать кроссплатформенную библиотеку JpCap

Взялся за 2.   smile Могу скинуть набросок кода который я использовал для проверки работоспособности подхода, вдруг кому понадобится. Отлавливаются все завершения tcp соединений по порту 5900, обследуются все пакеты(фреймы) прибывшие с интерфейсов у которых айпи адрес srvAddr. Работает прекрасно. Компиляция и конфигурация либы на Линуксе из сырцов заняла минут 10. Доволен, переделаю код далее ближе под задачу, тема закрыта.
Код

package TcpSniff;

import jpcap.*;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
import java.util.ArrayList;



class Tcpdump implements PacketReceiver
{
        public void receivePacket(Packet packet)
        {
                TCPPacket p = (TCPPacket) packet;

                if (p.fin && (p.src_port == 5900 || p.dst_port == 5900))
                {
                        System.out.println("Source: " + p.src_port);
                        System.out.println("Dest:" + p.dst_port);
                }
    }


    public static void main(String[] args) throws Exception
    {
        NetworkInterface[] devices = JpcapCaptor.getDeviceList();

        String srvAddr = "127.0.0.1";
        ArrayList<JpcapCaptor> srvDevices = new ArrayList<JpcapCaptor>();
        for (int i = 0; i < devices.length; ++i)
        {
                for (NetworkInterfaceAddress addr: devices[i].addresses)
                        if(addr.address.getHostAddress().toString().compareToIgnoreCase(srvAddr) == 0)
                        {
                                srvDevices.add(JpcapCaptor.openDevice(devices[i], 65535, false, 20));
                        }
        }


        for(JpcapCaptor srvDevice: srvDevices)
        {
                srvDevice.setFilter("ip and tcp", true);
                srvDevice.loopPacket(-1, new Tcpdump());
        }
    }
}  


Это сообщение отредактировал(а) AzeriSoul - 14.4.2010, 01:54
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.