Работа с сетевыми подключениями в XE7

  • Автор темы neobi1
  • 1182
  • Обновлено
  • 05, Dec 2014
  • #1
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)

neobi1


Рег
06 Jul, 2014

Тем
6

Постов
39

Баллов
99
  • 05, Dec 2014
  • #2
neobi1, post: 760980:
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)
Копай инфу в компонентах INDY (для DELPHI)
 

deksab


Рег
13 Aug, 2014

Тем
0

Постов
11

Баллов
11
  • 05, Dec 2014
  • #3
deksab, post: 760981:
Копай инфу в компонентах INDY (для DELPHI)
Посмотрел всё по indy по рпботе с сетевыми интерфейсами там есть только опредление всех IP адресов системы.
 

neobi1


Рег
06 Jul, 2014

Тем
6

Постов
39

Баллов
99
  • 08, Dec 2014
  • #5
Есть прекрасный компонент IPHelper там показывает полную статистику, сколько принято, чего отправлено и т.д., список всех интерфейсов, IP и их настроек, даже таблица ARP есть и маршрутизация.

Но это только статистика.

А вот компонент чтобы управлял настройками Windows, сетевыми подключениями и DNS - такого в жизни не встречал.
 

kolobok16


Рег
08 Dec, 2014

Тем
0

Постов
4

Баллов
4
  • 08, Dec 2014
  • #6
kolobok16, post: 760984:
Есть прекрасный компонент IPHelper там показывает полную статистику, сколько принято, чего отправлено и т.д., список всех интерфейсов, IP и их настроек, даже таблица ARP есть и маршрутизация.

Но это только статистика.

А вот компонент чтобы управлял настройками Windows, сетевыми подключениями и DNS - такого в жизни не встречал.
Дак этоже вроде не компонент, а библиотека работы с dll через тотже WinAPI или както так. правда может я чего упустил, пожайлуста ссылку можешь дать на этот компонент ?
 

neobi1


Рег
06 Jul, 2014

Тем
6

Постов
39

Баллов
99
  • 12, Dec 2014
  • #7
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из cmd окна допустим от команды ipconfig /all кучу примеров пересмотрел неодин неработатет на delphi XE7 постоянно вываливаются ошибки.
 

neobi1


Рег
06 Jul, 2014

Тем
6

Постов
39

Баллов
99
  • 12, Dec 2014
  • #8
Я пользовался Indy и ICS. Программа на ICS жрет меньше процессорного времени в 2-3 раза. Кроме того в ICS есть ассинхронное исполнение. А в Indy синхронное.
 

ziv_2010


Рег
19 May, 2010

Тем
1

Постов
7

Баллов
17
  • 13, Dec 2014
  • #9
neobi1, post: 760986:
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из cmd окна допустим от команды ipconfig /all кучу примеров пересмотрел неодин неработатет на delphi XE7 постоянно вываливаются ошибки.
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;

const

ReadBuffer = 2400;

var

Security : TSecurityAttributes;

ReadPipe,WritePipe : THandle;

start : TStartUpInfo;

ProcessInfo : TProcessInformation;

Buffer : PAnsichar;

BytesRead : DWord;

Apprunning : DWord;

begin

With Security do begin

nlength := SizeOf(TSecurityAttributes) ;

binherithandle := true;

lpsecuritydescriptor := nil;

end;

if Createpipe (ReadPipe, WritePipe,

@Security, 0) then begin

Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;

FillChar(Start,Sizeof(Start),#0) ;

start.cb := SizeOf(start) ;

start.hStdOutput := WritePipe;

start.hStdInput := ReadPipe;

start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;

start.wShowWindow := SW_HIDE;

UniqueString(DosApp);

if CreateProcess(nil,

PChar(DosApp),

@Security,

@Security,

true,

NORMAL_PRIORITY_CLASS,

nil,

nil,

start,

ProcessInfo)

then begin

repeat

Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;

Application.ProcessMessages;

until (Apprunning <> WAIT_TIMEOUT) ;

Repeat

BytesRead := 0;

ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;

Buffer[BytesRead]:= #0;

//OemToAnsiBuff(Buffer,Buffer,BytesRead) ;

AMemo.Text := AMemo.text + String(Buffer) ;

until (BytesRead < ReadBuffer) ;

end;

FreeMem(Buffer) ;

CloseHandle(ProcessInfo.hProcess) ;

CloseHandle(ProcessInfo.hThread) ;

CloseHandle(ReadPipe) ;

CloseHandle(WritePipe) ;

end;

end;

begin

RunDosInMemo('ipconfig.exe /all',Memo1) ;

end;

Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
 

ASDOH


Рег
01 Jul, 2010

Тем
0

Постов
6

Баллов
6
  • 15, Dec 2014
  • #10
ASDOH, post: 760988:
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;

const

ReadBuffer = 2400;

var

Security : TSecurityAttributes;

ReadPipe,WritePipe : THandle;

start : TStartUpInfo;

ProcessInfo : TProcessInformation;

Buffer : PAnsichar;

BytesRead : DWord;

Apprunning : DWord;

begin

With Security do begin

nlength := SizeOf(TSecurityAttributes) ;

binherithandle := true;

lpsecuritydescriptor := nil;

end;

if Createpipe (ReadPipe, WritePipe,

@Security, 0) then begin

Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;

FillChar(Start,Sizeof(Start),#0) ;

start.cb := SizeOf(start) ;

start.hStdOutput := WritePipe;

start.hStdInput := ReadPipe;

start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;

start.wShowWindow := SW_HIDE;

UniqueString(DosApp);

if CreateProcess(nil,

PChar(DosApp),

@Security,

@Security,

true,

NORMAL_PRIORITY_CLASS,

nil,

nil,

start,

ProcessInfo)

then begin

repeat

Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;

Application.ProcessMessages;

until (Apprunning <> WAIT_TIMEOUT) ;

Repeat

BytesRead := 0;

ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;

Buffer[BytesRead]:= #0;

//OemToAnsiBuff(Buffer,Buffer,BytesRead) ;

AMemo.Text := AMemo.text + String(Buffer) ;

until (BytesRead < ReadBuffer) ;

end;

FreeMem(Buffer) ;

CloseHandle(ProcessInfo.hProcess) ;

CloseHandle(ProcessInfo.hThread) ;

CloseHandle(ReadPipe) ;

CloseHandle(WritePipe) ;

end;

end;

begin

RunDosInMemo('ipconfig.exe /all',Memo1) ;

end;


Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
Респект тебе и уважуха. Давно искал рабочий вариант. Огромное тебе спасибо
 

neobi1


Рег
06 Jul, 2014

Тем
6

Постов
39

Баллов
99
  • 16, Dec 2014
  • #11
ASDOH, post: 760988:
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;

const

ReadBuffer = 2400;

var

Security : TSecurityAttributes;

ReadPipe,WritePipe : THandle;

start : TStartUpInfo;

ProcessInfo : TProcessInformation;

Buffer : PAnsichar;

BytesRead : DWord;

Apprunning : DWord;

begin

With Security do begin

nlength := SizeOf(TSecurityAttributes) ;

binherithandle := true;

lpsecuritydescriptor := nil;

end;

if Createpipe (ReadPipe, WritePipe,

@Security, 0) then begin

Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;

FillChar(Start,Sizeof(Start),#0) ;

start.cb := SizeOf(start) ;

start.hStdOutput := WritePipe;

start.hStdInput := ReadPipe;

start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;

start.wShowWindow := SW_HIDE;

UniqueString(DosApp);

if CreateProcess(nil,

PChar(DosApp),

@Security,

@Security,

true,

NORMAL_PRIORITY_CLASS,

nil,

nil,

start,

ProcessInfo)

then begin

repeat

Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;

Application.ProcessMessages;

until (Apprunning <> WAIT_TIMEOUT) ;

Repeat

BytesRead := 0;

ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;

Buffer[BytesRead]:= #0;

//OemToAnsiBuff(Buffer,Buffer,BytesRead) ;

AMemo.Text := AMemo.text + String(Buffer) ;

until (BytesRead < ReadBuffer) ;

end;

FreeMem(Buffer) ;

CloseHandle(ProcessInfo.hProcess) ;

CloseHandle(ProcessInfo.hThread) ;

CloseHandle(ReadPipe) ;

CloseHandle(WritePipe) ;

end;

end;

begin

RunDosInMemo('ipconfig.exe /all',Memo1) ;

end;


Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
Прикольное решение. Надо будет взять на заметку
 

werful


Рег
24 May, 2009

Тем
1

Постов
17

Баллов
27
  • 18, Dec 2014
  • #12
neobi1, post: 760980:
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)

http://www.magsys.co.uk/delphi/
 

DelGor


Рег
25 Jul, 2011

Тем
0

Постов
11

Баллов
11
  • 28, Dec 2016
  • #14
можно делать все несколькими способами, управление таблицей маршрутизации через API (iphlpapi.dll) имеются готовые модули (IpHlpApi.pas, IpConst.pas и т.д.) данные же по сетевым интерфейсам можно получать используя WMI
 

StrikerLoner


Рег
24 Jul, 2009

Тем
0

Постов
8

Баллов
8
Тем
49554
Комментарии
57426
Опыт
552966

Интересно