![]() |
1
2
另一种方法是执行dns mx(邮件交换记录)查询以查找给定域的smtp服务器: |
![]() |
2
1
我怀疑域服务器 明确地 公布它们是smtp服务器的事实(我可能错了),尽管解决方案应该非常简单。
希望能有所帮助。 |
![]() |
3
0
我认为你不能用DirectoryServices来做。 一种方法是尝试连接到域上SMTP端口(25)上的每个服务器,并查看它们是否响应标准的SMTP命令。如果您有域中计算机的列表,那么可以使用tcpclient类轻松完成此操作。 当然,这不会找到不使用标准端口的服务器(但如果服务器不使用标准端口,则可能不希望首先找到它:-) |
![]() |
4
0
根据Noldorin的建议,这里有一些代码,注意我只是在25号连接,我没有在服务器上等待220。这对我们的领域有效。这是基于ldap路径获取服务器名称的野蛮regex。
另外,我认为findall受到了通常的广告限制,即1000个结果,因此如果您的域中有超过1000个服务器,则可能需要重新编写 |
![]() |
5
0
如果您想找到一个域的邮件服务器以便向该域发送邮件,那么使用dns mx是一种方法,正如mjmarh已经建议的那样。 如果要使用AD标识域中的所有任意SMTP服务,则可以利用这样一个事实:大多数SMTP服务器都将在AD中注册自己,例如Exchange会在AD中注册,并且可以查询AD服务以查找其位置。例如,本白皮书解释了Outlook客户端如何使用活动目录发现其邮箱服务器: http://technet.microsoft.com/en-us/library/bb332063.aspx 在某个域上,对所有计算机进行端口扫描会像圣诞树一样点亮任何入侵检测机制,最终可能导致应用程序网络地址关闭。 |