比如小弟我声情了一个邮箱(abc@21cn.com),小弟我怎么知道其pop3 和smtp 地址?
比如我声情了一个邮箱(abc@21cn.com),我如何知道其pop3 和smtp 地址?? ?
rt
------解决方案--------------------
估计只能你先保存一些常用邮箱对应的服务器然后对比得出 可以先把这个列表压缩了 尺寸不会太大
8过我也是估计
------解决方案--------------------
pop3.21cn.com;smtp.21cn.com
------解决方案--------------------
应该只能问邮件提供商了。。。一般都会在网站的FAQ或者其他地方写明具体的SMTP和POP3的服务器地址
------解决方案--------------------
几个回答的都不到点子上啊,
学过DNS解析没有啊,
解析MX记录就行了,
windwos自带的nslookup就行,
我自己也写过解析程序
------解决方案--------------------
// DNS.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h "
#include <stdio.h>
#include "conio.h "
#include <winsock.h>
#include "iphlpapi.h "
#include "windows.h "
#include "MY.h "
/***********************************************
* *
* 计算字符串长度,以 0 , 0xC0结尾 并加1 *
* *
* 参数 = 字符字针 *
* 返回值 = 长度 *
* *
* *
************************************************/
int getStrLenM(BYTE *chStr)
{
int i = 0 ;
while(*(chStr+i))
{
if(*(chStr+i) == 0xC0)
{
i++;
break;
}
i++;
}
i++;
return i ;
};
/**************************************************
DNS函数
char *DNSName = 域名
IpAdd = 返回的IP地址
*************************************************/
int DNSLook(char *DNSName,ULONG *IpAdd)
{
//主要配置参数
unsigned short QueryTyep = 15; //查询类型
int DNStimewait = 3 ; //DNS的UDP超时设置,单位秒
/*********************************************
得到DNS服务器IP地址
*********************************************/
int i = 0 ;
DWORD dwError = 0 ; //错误代码
FIXED_INFO IpBuff[10]; //IP配置缓冲
unsigned long size = sizeof(IpBuff);//得到缓冲大小
PULONG pSize = &size;
dwError = GetNetworkParams(IpBuff,pSize); //执行
if(dwError)
return 1; //错误判断
IP_ADDR_STRING *IpList = &(IpBuff-> DnsServerList) ; //得到DNS服务器地址
//得到DNS服务器IP地址结束
/*********************************************
初始化SOCKET连接
*********************************************/
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
struct sockaddr_in server;
server.sin_family=AF_INET;
server.sin_port=htons(53); //DNS的server的监听端口
SOCKET s;
s = socket(AF_INET,SOCK_DGRAM,0);
int len =sizeof(server);
BYTE Buff[1024]= "\0 "; //缓冲
u_long ul = 1;
int nRet = ioctlsocket(s,FIONBIO,(u_long *)&ul); //设置为非锁定模式
if(nRet == -1) printf( "非锁定模式设置错误 ");
//初始化SOCKET连接结束
/*********************************************
发送数据据包构造
*********************************************/
DnsHeader *DNSH;
DNSH = (DnsHeader *)Buff ;
DNSH-> id = 0x0110 ; DNSH-> flags = 0x0001;
DNSH-> quests = 0x0100 ;
DNSH-> answers = 0 ;
DNSH-> author = 0 ;
rt
------解决方案--------------------
估计只能你先保存一些常用邮箱对应的服务器然后对比得出 可以先把这个列表压缩了 尺寸不会太大
8过我也是估计
------解决方案--------------------
pop3.21cn.com;smtp.21cn.com
------解决方案--------------------
应该只能问邮件提供商了。。。一般都会在网站的FAQ或者其他地方写明具体的SMTP和POP3的服务器地址
------解决方案--------------------
几个回答的都不到点子上啊,
学过DNS解析没有啊,
解析MX记录就行了,
windwos自带的nslookup就行,
我自己也写过解析程序
------解决方案--------------------
// DNS.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h "
#include <stdio.h>
#include "conio.h "
#include <winsock.h>
#include "iphlpapi.h "
#include "windows.h "
#include "MY.h "
/***********************************************
* *
* 计算字符串长度,以 0 , 0xC0结尾 并加1 *
* *
* 参数 = 字符字针 *
* 返回值 = 长度 *
* *
* *
************************************************/
int getStrLenM(BYTE *chStr)
{
int i = 0 ;
while(*(chStr+i))
{
if(*(chStr+i) == 0xC0)
{
i++;
break;
}
i++;
}
i++;
return i ;
};
/**************************************************
DNS函数
char *DNSName = 域名
IpAdd = 返回的IP地址
*************************************************/
int DNSLook(char *DNSName,ULONG *IpAdd)
{
//主要配置参数
unsigned short QueryTyep = 15; //查询类型
int DNStimewait = 3 ; //DNS的UDP超时设置,单位秒
/*********************************************
得到DNS服务器IP地址
*********************************************/
int i = 0 ;
DWORD dwError = 0 ; //错误代码
FIXED_INFO IpBuff[10]; //IP配置缓冲
unsigned long size = sizeof(IpBuff);//得到缓冲大小
PULONG pSize = &size;
dwError = GetNetworkParams(IpBuff,pSize); //执行
if(dwError)
return 1; //错误判断
IP_ADDR_STRING *IpList = &(IpBuff-> DnsServerList) ; //得到DNS服务器地址
//得到DNS服务器IP地址结束
/*********************************************
初始化SOCKET连接
*********************************************/
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
struct sockaddr_in server;
server.sin_family=AF_INET;
server.sin_port=htons(53); //DNS的server的监听端口
SOCKET s;
s = socket(AF_INET,SOCK_DGRAM,0);
int len =sizeof(server);
BYTE Buff[1024]= "\0 "; //缓冲
u_long ul = 1;
int nRet = ioctlsocket(s,FIONBIO,(u_long *)&ul); //设置为非锁定模式
if(nRet == -1) printf( "非锁定模式设置错误 ");
//初始化SOCKET连接结束
/*********************************************
发送数据据包构造
*********************************************/
DnsHeader *DNSH;
DNSH = (DnsHeader *)Buff ;
DNSH-> id = 0x0110 ; DNSH-> flags = 0x0001;
DNSH-> quests = 0x0100 ;
DNSH-> answers = 0 ;
DNSH-> author = 0 ;