Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разобраться с Rad Studio и её типами, Разобраться с Rad Studio и её типами 
:(
    Опции темы
4Got
Дата 12.12.2012, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток. Сейчас вот по долгу службы надо написать сниффер, точнее на сетевом уровне снимать пакеты с сетевой карти и передавать заголовки пакетов в базу данных. Зачем изобретать велосипед, скачал сэмпл по работе с сокетами для перехвата. НО никак не могу разобраться с ошибкой, которая возникла из-за разных версий програмной среды, в частности пишет несовместимость типов PChfr и PAnsiChar как бороться с этим?  У меня RadStudio 2010 а исходники, так понимаю на  делфи 7 сделаны. Как быть? Подскажите, а то мой недалёкий мозк уже неделю как кипит. Уже пробовал работать и с драйвером winpicap но там вообще дебри в которых заблудиться раз плюнуть. 
Код

 // инициализируем WinSock
  Result := WSAStartup(WSA_VER, WSA) = NOERROR;
  if not Result then
  begin
    LogData := 'Ошибка: ' + SysErrorMessage(WSAGetLastError);
    Synchronize(ShowPacket);
    Exit;
  end;
  // создаем сокет
  hSocket := socket(AF_INET, SOCK_RAW, IPPROTO_IP);
  if hSocket = INVALID_SOCKET then
  begin
    DeInitSocket(WSAGetLastError);
    Exit;
  end;
  FillChar(Addr_in, SizeOf(sockaddr_in), 0);
  Addr_in.sin_family:= AF_INET;
  // указываем за каким интерфейсом будем следить
  Addr_in.sin_addr.s_addr := inet_addr(Pchar(Host));      //Ошибка тут! Несовместимость типов.
  // связываем сокет с локальным адресом
  if bind(hSocket, Addr_in, SizeOf(sockaddr_in)) <> 0 then
  begin
    DeInitSocket(WSAGetLastError);
    Exit;
  end;
  // Переключаем интерфейс на прием всех пакетов проходящих через интерфейс - promiscuous mode.
  PromiscuousMode := 1;
  if ioctlsocket(hSocket, SIO_RCVALL, PromiscuousMode) <> 0 then
  begin
    DeInitSocket(WSAGetLastError);
    Exit;
  end;
  Result := True;
end;

PM MAIL   Вверх
Coobick
Дата 12.12.2012, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не совсем в тему.. переходи уж лучше сразу на ХЕ и "копай" на ней. Иначе после опять(ведь в скором времени всёравно обновиш) проблемы будут..не везде, но будут.

Ну и так, что мешает заменить "нужные" PChar на PAnsiChar? 

PM MAIL   Вверх
4Got
Дата 12.12.2012, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



С PAnsiChar компилируется но не работает, а качанная демка работает, но не компилируется. Мешает перейти купленная лицензия, не мной)))

Добавлено через 46 секунд
кому интересно, исходники могу скинуть.
PM MAIL   Вверх
Coobick
Дата 12.12.2012, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну пробуй так.. PAnsiChar(AnsiString(  smile 
PM MAIL   Вверх
CynicRus
Дата 13.12.2012, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Или же UniqueString(тут твой pchar);
PM MAIL   Вверх
4Got
Дата 13.12.2012, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



UniqueString(тут твой pchar);  - не работает...((((
А так PAnsiChar(AnsiString(         - компилируется, но опять таки не работает(((( Есть большое подозрение, что ни в этом дело. Ладно, всем огромное спасибо. тема закрыта.
PM MAIL   Вверх
Poseidon
Дата 14.12.2012, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Цитата(4Got @  13.12.2012,  13:21 Найти цитируемый пост)
компилируется, но опять таки не работает
А рабочий ли вообще код? Если его скомпилировать на D7, все нормально?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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