如何从DNS服务器获得某个email的POP服务器地址?

insins 2003-02-14 10:56:29
假如我想给someone@somewhere.com发邮件,我想知道这个somewhere.com的地址,我怎么获得呢?请给代码或例子!
...全文
525 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
PoneyChen 2003-03-21
  • 打赏
  • 举报
回复
注意indy 8.0 与indy 9.0.11是不同的
PoneyChen 2003-03-21
  • 打赏
  • 举报
回复
这就是从我的程序中Copy过来的。 完全没问题
insins 2003-03-01
  • 打赏
  • 举报
回复
not work!
insins 2003-02-22
  • 打赏
  • 举报
回复
not work,please test it first!
PoneyChen 2003-02-20
  • 打赏
  • 举报
回复
使用Indy 9.0.11
TResultRecord *rec;
TMXRecord *recMX;
TARecord *recA;
try{
IdDNS->Host=DNSServer IPAddress;
IdDNS->QueryRecords<<qtMX;
IdDNS->Resolve(Domain Name); //Domain Name--sina.com.cn
for(int i=0;i<IdDNS->QueryResult->Count;i++){
rec=IdDNS->QueryResult->Items[i];
if(rec->RecType==qtMX){
recMX=(TMXRecord *)rec;
recMX->ExchangeServer; //Mail Server Name
}
if(rec->RecType==qtA){
recA=(TARecord *)rec;
recA->IPAddress; //Mail Server IP Address
}
}
}catch(Exception &e){
ShowMessage(e.Message);
}
猛禽 2003-02-19
  • 打赏
  • 举报
回复
要通过DNS查询MX记录。

INDY很简单啊,怎么会没有DEMO,不过D6/BCB6都有,D7虽然没有,可以到INDY的主页上去当啊。
SharpKing515 2003-02-19
  • 打赏
  • 举报
回复
AnsiString __fastcall domainToIp(AnsiString &sTempDomain)
{
SOCKADDR_IN saddr;
WORD wVersionRequested;
WSADATA wsaData;
int nErrorNum;
wVersionRequested = MAKEWORD( 2, 2 );
nErrorNum= WSAStartup( wVersionRequested, &wsaData );
if ( nErrorNum!= 0 )
{
ShowMessage("error!WSAStartup failed!\n");
return "";
}
saddr.sin_family = AF_INET;

hostent *pHostIp ;

pHostIp = gethostbyname(sTempDomain.c_str());
if(pHostIp == NULL)
{
MessageBox(Application->Handle,SysErrorMessage(GetLastError()).c_str(),"初始化错",16);
return "0.0.0.0";
}
WSACleanup();
return (AnsiString)inet_ntoa(*(LPIN_ADDR)*(pHostIp->h_addr_list)) ;

}
l_clove 2003-02-19
  • 打赏
  • 举报
回复
不是什么东西,你要#include <winsock.h>才行
insins 2003-02-19
  • 打赏
  • 举报
回复
l_clove兄,你的代码好象不能得到MX地址,而只是域名地址,好象不行!
insins 2003-02-18
  • 打赏
  • 举报
回复
struct hostent *hostname;
struct in_addr l_Serip;
请问hostent 和in_addr是什么东西?
insins 2003-02-18
  • 打赏
  • 举报
回复
我搞不懂为什么INDY要把简单的问题搞复杂?
我根本看不懂INDY的所谓英文,简直不是写给人看的,没有EXAMPLE,而且组件的使用也非常奇怪,又是所谓技术天才的作品吧!
PoneyChen 2003-02-16
  • 打赏
  • 举报
回复
使用Indy, 查询MX记录
warton 2003-02-16
  • 打赏
  • 举报
回复
socket编程常要处理这样的操作,讲socket的书上都有这样的例子
l_clove 2003-02-16
  • 打赏
  • 举报
回复
还是用gethostbyname函数
struct hostent *hostname;
struct in_addr l_Serip;
if(!(hostname=gethostbyname(etSer->Text.c_str()))) //主机名
{
MessageBox(NULL, "无法获取主机IP地址!", "错误", MB_OK|MB_ICONERROR);
return ;
}
l_Serip.s_addr=*((unsigned int *)hostname->h_addr_list[0]); //整型的IP地址
etIPAddr->Text=inet_ntoa(l_Serip); //转换成字符的IP地址

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧