Здравствуйте Gosha, Вы писали:
G>Здравствуйте Alex Fedotov, Вы писали:
AF>>Просто в компьютере может быть несколько сетевых интерфейсов, и каждый из них может иметь свой собственный IP. Например, если в компьютере есть сетевая карта и модем, то для сетевой карты может быть свой IP, а для модема — свой. Хотя gethostbyname и возвращает адреса для всех интерфейсов (hostent.h_addr_list), но узнать какой IP сооветствует какому интерфейсу с ее помощью нельзя.
G>Кстати, мне однажды нужно было перечислить адреса (заполнить комбо, чтобы пользователь выбрал к какому биндиться) и тогда (как и сейчас) я не знал как убрать из этого списка интерфейсы с "модемным приводом" (а точнее все RAS-овские). Вы случайно не знаете как это сделать?
GetNumberOfInterfaces
GetIfEntry
typedef struct _MIB_IFROW {
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex; // index of the interface
DWORD dwType; // type of interface
DWORD dwMtu; // max transmission unit
DWORD dwSpeed; // speed of the interface
DWORD dwPhysAddrLen; // length of physical address
BYTE bPhysAddr[MAXLEN_PHYSADDR]; // physical address of adapter
DWORD dwAdminStatus; // administrative status
DWORD dwOperStatus; // operational status
DWORD dwLastChange; // last time operational status changed
DWORD dwInOctets; // octets received
DWORD dwInUcastPkts; // unicast packets received
DWORD dwInNUcastPkts; // non-unicast packets received
DWORD dwInDiscards; // received packets discarded
DWORD dwInErrors; // erroneous packets received
DWORD dwInUnknownProtos; // unknown protocol packets received
DWORD dwOutOctets; // octets sent
DWORD dwOutUcastPkts; // unicast packets sent
DWORD dwOutNUcastPkts; // non-unicast packets sent
DWORD dwOutDiscards; // outgoing packets discarded
DWORD dwOutErrors; // erroneous packets sent
DWORD dwOutQLen; // output queue length
DWORD dwDescrLen; // length of bDescr member
BYTE bDescr[MAXLEN_IFDESCR]; // interface description
} MIB_IFROW,*PMIB_IFROW;
Жалко под 95 не пашет