如何用程序得到“本地连接”里的IP,子网,网关,DNS和网卡的MAC地址并设置。(200分)

  • 主题发起人 主题发起人 大傻子
  • 开始时间 开始时间

大傻子

Unregistered / Unconfirmed
GUEST, unregistred user!
我想得到“本地连接”里的IP,子网,网关,DNS和网卡的MAC地址并设置。
还有以下几个问题:
1)要是有多个网卡怎么办?(包括有线网卡和无线网卡)
2)Vista系统怎么办?
3)要是“本地连接”叫“本地连接2”或“本地连接N”怎么办
==============================
急,请会的朋友帮一下,分不够可有再加。希望能给出代码。也可发到我的邮箱liubingji@163.com
先在这谢谢了。
 
使用IPHelp 函数 GetAdaptersInfo()函数,参数是一个IP_ADAPTER_INFO结构,和该结构的长度 VC下可以很方便的调用,有相关的api声明,delphi下调用需要装载iphlpapi.dll 这个dll在windows/system32目录下,从这个dll里装载此函数,构造下面结构体来调用.
下面是VC下的声明,转换为delphi结构即可.
typedef struct _IP_ADAPTER_INFO {
struct _IP_ADAPTER_INFO* Next;
DWORD ComboIndex;
char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
UINT AddressLength;
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
DWORD Index;
UINT Type;
UINT DhcpEnabled;
PIP_ADDR_STRING CurrentIpAddress;
IP_ADDR_STRING IpAddressList;
IP_ADDR_STRING GatewayList;
IP_ADDR_STRING DhcpServer;
BOOL HaveWins;
IP_ADDR_STRING PrimaryWinsServer;
IP_ADDR_STRING SecondaryWinsServer;
time_t LeaseObtained;
time_t LeaseExpires;
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
上面结构用到的结构
typedef struct _IP_ADDR_STRING {
struct _IP_ADDR_STRING* Next;
IP_ADDRESS_STRING IpAddress;
IP_MASK_STRING IpMask;
//实际是char String[4 * 4];
DWORD Context;
} IP_ADDR_STRING, *PIP_ADDR_STRING;
time_t 是 longint类型.
struct _IP_ADAPTER_INFO* Next;
这个结构就是指下个网卡.nil就没了.
 
不明白,能说的清楚些吗?或是给个代码.
 
参考一下:
http://bbs.yd153.com/dispbbs.asp?boardid=2&Id=215&page=2
 
谁能给个例子子呀
 
你可以参考人民邮电出版社出版的《DELPHI网络高级编程》中的第五章,里面有详细的内容可供参考,内容较多。
 
搜索下以前的资料 有很多的。。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部