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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интернет и Web, IP-адресс 
:(
    Опции темы
z-END
  Дата 13.3.2003, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


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

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



withstupid.gif
Как оперделить IP-Адреса и порты всех установленных соединений на моем компьютере.


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
<Spawn>
Дата 14.3.2003, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



GetTcpTable, GetUdpTable

Это сообщение отредактировал(а) <Spawn> - 14.3.2003, 00:34


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 14.3.2003, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Импорт GetTcpTable

Код

unit TcpTable;

interface

type
PDWord=^Longword;

PMIB_TCPROW=^TMIB_TCPROW;

TMIB_TCPROW=record
 dwState:LongWord;
 dwLocalAddr:LongWord;
 dwLocalPort:LongWord;
 dwRemoteAddr:LongWord;
 dwRemotePort:LongWord;
end;

PMIB_TCPTABLE=^TMIB_TCPTABLE;

TMIB_TCPTABLE=record
 dwNumEntries:LongWord;
 table:array[0..0] of TMIB_TCPROW;
end;

function GetTcpTable(var TcpTable:PMIB_TCPTABLE;var Size:PDWord;bOrder:Boolean):LongWord;stdcall

implementation

function GetTcpTable;     external 'Iphlpapi.dll' name 'GetTcpTable';


end.


Вызов GetTcpTable

Код

   {$R-}
   Entries:=16;
   Sz:=SizeOf(TMIB_TCPTABLE)+SizeOf(TMIB_TCPROW)*(Entries-1);
   pMibTable:=nil;
   try
    repeat
      ReallocMem(pMibTable,Sz);
      Res:=GetTcpTable(pMibTable^,Sz,False);
    until Res <> ERROR_INSUFFICIENT_BUFFER;
    if Res <> NO_ERROR then
     begin
      ShowMessage(SysErrorMessage(Res));
      exit;
     end;
    for Entries:=0 to pMibTable.dwNumEntries-1 do
     begin
        <Делать что-то>
     end;
   finally
    FreeMem(pMibTable);
   end;
  {$R+}



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
z-END
Дата 15.3.2003, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


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

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




Почему-то данный код неработает...

Во-первых SizeOF() - возвращает значение типа Integer, хотя переменная Sz типа ^LongWord.
Во-вторых при экспортировании ф-ции GetTcpTable необходим pMibTable, тогда почему при ее вызове используется указатель "pMibTable^"
Вообщем я неразобрался... если кто-может то хотелось-бы чтобы объснили..


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
<Spawn>
Дата 15.3.2003, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Цитата(nJIaKca @ 14.3.2003, 20:25)
Почему-то данный код неработает...

Во-первых SizeOF() - возвращает значение типа Integer, хотя переменная Sz типа ^LongWord.
Во-вторых при экспортировании ф-ции GetTcpTable необходим pMibTable, тогда почему при ее вызове используется указатель "pMibTable^"
Вообщем я неразобрался... если кто-может то хотелось-бы чтобы объснили..

Res:DWORD;
Sz:DWord;
pMibTable:PMIB_TCPTABLE;

Ты такие переменные задал?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
z-END
Дата 15.3.2003, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


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

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



Переменные то те, а вот здесь
Цитата
    Res:=GetTcpTable(pMibTable^,Sz,False);

Компилятор выдает 2 ошибки:
1 - pMibTable^ - [Error] Unit1.pas(44): Types of actual and formal var parameters must be identical
т.e. работает если использовать pMibTable без"^"
2 - Sz [Error] Unit1.pas(44): Types of actual and formal var parameters must be identical
а вот здесь что делать неясно... т.к. при использовании PDWord(Sz) компиляция проходит нормально, но при обращении
Цитата
    for Entries:=0 to pMibTable.dwNumEntries-1 do
    begin
        <Делать что-то>
    end;

ошибка read of address FFFFFFFF т.е. pMibTable.dwNumEntries- nil
В чем я опять ошибся?


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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