服务器的地址可能不止一个,这时,你可根据信件优先级的不同来选择对应的远程邮局,我为了安全
起见会对每一个远程邮局服务器按照等级高低逐一尝试,只要将邮件成功地发送到其中一个邮局我们
的任务就完成了。
我们要完成几项编程工作:本机 DNS 的获取、与 DNS 服务器通信实现 MX 指令查询、SMTP 邮件
提交,下面我们一一阐述。
获取本机 DNS
代码中我封装了一个类 CnetAdapterInfo,该类可以获取本机网卡的系列信息,包括本机 IP 地址、
子网掩码、DNS、Wins、网卡 MAC 地址等相关信息。
首先我们需要调用 IPHelpAPI 库中的 GetAdaptersInfo()函数来获取系统中所有网卡信息。
DWORD GetAdaptersInfo (
__out PIP_ADAPTER_INFO pAdapterInfo,
__inout PULONG pOutBufLen
);
该函数有两个参数,pAdapterInfo 是一个指针,指向一个用户定义的结构体,一般是用 HeapAlloc()
申请的内存空间,pOutBufLen 传入 pAdapterInfo 所指空间的大小,传出实际需要的缓冲大小,第一
次调用该函数时 pOutBufLen 传入 0,函数将返回 ERROR_BUFFER_OVERFLOW 表示需要更多的
缓冲,并将实际需要的缓冲长度返回,我们根据实际长度用 HeapAlloc()函数申请空间再次调用该函
数,以下代码是枚举所有网卡并将信息保存到数组 m_Ary_NetAdapterInfo 中:
评论0
最新资源