Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

несколько инет коннекшенов   Найти похожие ветки 

 
dolphin1   (2005-05-28 19:49) [0]

у меня на компе 2 сетевые карты
и я получаю инет от 2 провайдеров (каждый дает 256kBit)

замечена странная вещь : когда одновременно работает инет только от одного сетевого интерфейса.

Возможно ли настроить xp так чтобы она брала инет одновременно от нескольких провайдеров ?

Как програмно перечислить все текущие ip ?


 
Eraser ©   (2005-05-28 19:52) [1]

dolphin1   (28.05.05 19:49)
когда одновременно работает инет только от одного сетевого интерфейса.


Так что за весч?

Возможно ли настроить xp так чтобы она брала инет одновременно от нескольких провайдеров ?

Можно, команда route.

Как програмно перечислить все текущие ip ?

unit alxUSock;

interface

uses Windows, Winsock;

{

 Если Вы поместите строку результатов в wide TMEMO (в его свойство memo.lines.text)
 то никаких результатов не увидите.

 Тестировалось на Win98/ME/2K, 95 OSR 2 и NT service
 pack #3 , потому что используется WinSock 2 (WS2_32.DLL)

}

function EnumInterfaces(var sInt: string): Boolean;

{ функция WSAIOCtl импортируется из Winsock 2.0 - Winsock 2 доступен }
{ только в Win98/ME/2K и 95 OSR2, NT srv pack #3 }

function WSAIoctl(s: TSocket; cmd: DWORD; lpInBuffer: PCHAR; dwInBufferLen:
 DWORD;
 lpOutBuffer: PCHAR; dwOutBufferLen: DWORD;
 lpdwOutBytesReturned: LPDWORD;
 lpOverLapped: POINTER;
 lpOverLappedRoutine: POINTER): Integer; stdcall; external "WS2_32.DLL";

{ Константы взятые из заголовка C файлов }

const SIO_GET_INTERFACE_LIST = $4004747F;
 IFF_UP = $00000001;
 IFF_BROADCAST = $00000002;
 IFF_LOOPBACK = $00000004;
 IFF_POINTTOPOINT = $00000008;
 IFF_MULTICAST = $00000010;

type sockaddr_gen = packed record
   AddressIn: sockaddr_in;
   filler: packed array[0..7] of char;
 end;

type INTERFACE_INFO = packed record
   iiFlags: u_long; // Флаги интерфейса
   iiAddress: sockaddr_gen; // Адрес интерфейса
   iiBroadcastAddress: sockaddr_gen; // Broadcast адрес
   iiNetmask: sockaddr_gen; // Маска подсети
 end;

implementation

{-------------------------------------------------------------------

1. Открываем WINSOCK
2. Создаём сокет
3. Вызываем WSAIOCtl для доступа к сетевым интерфейсам
4. Для каждого интерфейса, получаем IP, MASK, BROADCAST, статус
5. Разделяем строку символом CRLF  
6. Конец :)

--------------------------------------------------------------------}

function EnumInterfaces(var sInt: string): Boolean;
var s: TSocket;
 wsaD: WSADATA;
 NumInterfaces: Integer;
 BytesReturned, SetFlags: u_long;
 pAddrInet: SOCKADDR_IN;
 pAddrString: PCHAR;
 PtrA: pointer;
 Buffer: array[0..20] of INTERFACE_INFO;
 i: Integer;
begin
 result := true;                                // Инициализируем переменную
 sInt := "";

 WSAStartup($0101, wsaD);                      // Запускаем WinSock
                                               // Здесь можно дабавить различные обработчики ошибки :)

 s := Socket(AF_INET, SOCK_STREAM, 0);          // Открываем сокет
 if (s = INVALID_SOCKET) then exit;

 try                                            // Вызываем WSAIoCtl
   PtrA := @bytesReturned;
   if (WSAIoCtl(s, SIO_GET_INTERFACE_LIST, nil, 0, @Buffer, 1024, PtrA, nil,
     nil)
     <> SOCKET_ERROR)
     then
   begin                                        // Если OK, то определяем количество существующих интерфейсов

     NumInterfaces := BytesReturned div SizeOf(INTERFACE_INFO);

     for i := 0 to NumInterfaces-1 do        // Для каждого интерфейса
     begin
       pAddrInet := Buffer[i].iiAddress.addressIn;            // IP адрес
       pAddrString := inet_ntoa(pAddrInet.sin_addr);
       sInt:=sInt+pAddrString;
       if i=NumInterfaces-1 then
         sInt := sInt
       else
         sInt := sInt + #13#10;
       // CRLF между каждым интерфейсом
     end;
   end;
 except
 end;
//
// Закрываем сокеты
//
 CloseSocket(s);
 WSACleanUp;
 result := false;
end;

end.


 
dolphin1   (2005-05-28 20:04) [2]

пасиба

>>когда одновременно работает инет только от одного сетевого >>интерфейса.

имел ввиду что одновременно работает инет только от одного сетевого интерфейса


 
Eraser ©   (2005-05-28 22:17) [3]

dolphin1   (28.05.05 20:04) [2]

Таблицу маршрутов надо настроить. В инете есть несколько статей на эту тему. Обычно в статьях обсуждается тема настройки инета через спутник для входящего канала и через LAN для исходящего.
Так что дай Гуглу такой запрос:
"спутниковый интернет настройка исходящего трафика"



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
11-1106846037
Sormy
2005-01-27 20:13
2005.09.18
Вопрос и разном обращении к Битмапам


1-1124864836
Dr. Andrew
2005-08-24 10:27
2005.09.18
Как записать в *.ini файл свойство шрифта Style?


2-1123831866
Гость22
2005-08-12 11:31
2005.09.18
Где найти готовую форму для введения пароля?


3-1123480511
Ирина
2005-08-08 09:55
2005.09.18
Как перенести поле записи в чеклистбокс?


2-1123622493
MS-REM
2005-08-10 01:21
2005.09.18
Почему в QA не видет связанные таблицы?