日期:2014-05-18  浏览次数:21261 次

使用socket方式可以 connect 某个特定域名服务器吗?
使用socket方式可以 connect 某个特定的域名服务器吗?如连接北京地区的 202.106.196.115或202.106.0.20?
我使用scanner扫描这两个地址,发现都没有开放的端口.那么我们的域名解析是通过什么方式实现的呢?就是域名解析的过程是通过什么方式与域名服务器交互的?

------解决方案--------------------
C# code

IPHostEntry ipHost = Dns.GetHostEntry("news.sina.com.cn");
IPEndPoint serverAddress = new IPEndPoint(ipHost.AddressList[0], 80);
Socket s = new Socket(m_ServerAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
s.Connect(serverAddress);

------解决方案--------------------
using System.Net;
using System.Net.Sockets;
------解决方案--------------------
发现都没有开放的端口

不一定没开放吧?可能只是不响应

DNS服务器会把你的域名请求'转'到对应的地址,
------解决方案--------------------
域名服务:udp 53
------解决方案--------------------
你的机器 本地连接 tcp/ip 指定DNS服务器,如果是自动,那上级路由里有,你的域名请求会被路由到那里。DNS服务器里保存有 域名--IP表 (你可以简单这么理解),根据表信息发到对应ip
------解决方案--------------------
有个类似数据库的东东,里面存有IP地址表,然后根据你的网址,从后往前查,如news.sina.com,先查com,再查sina,再查news,然后就找到服务器地址了
------解决方案--------------------
域名解析和能否访问是完全不同的,域名解析是通过你的DNS(或HOST文件)向你的DNS服务器去解析网站对应的IP. 
就算这个网站宕机了,也不影响你访问域名而解析成IP,只是你连接不上而已.
------解决方案--------------------
探讨
域名服务:udp 53