[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[转载教程] 玩转PowerShell之(9)DNS

玩转PowerShell之(1)检测硬盘自由空间http://bbs.bathome.net/thread-27008-1-1.html
玩转PowerShell之(2)计算篇http://bbs.bathome.net/thread-27010-1-1.html
玩转PowerShell之(3)命令执行结果http://bbs.bathome.net/thread-27011-1-1.html
玩转PowerShell之(4)email篇http://bbs.bathome.net/thread-27012-1-1.html
玩转PowerShell之(5)偷偷下载http://bbs.bathome.net/thread-27013-1-1.html
玩转PowerShell之(6)数据库篇http://bbs.bathome.net/thread-27014-1-1.html
玩转PowerShell之(7)图形菜单http://bbs.bathome.net/thread-27016-1-1.html
玩转PowerShell之(8)email篇续  - 把gmail当相册http://bbs.bathome.net/thread-27017-1-1.html
玩转PowerShell之(9)DNShttp://bbs.bathome.net/thread-27018-1-1.html

好多天没有更新这个系列了,不是我偷懒,实在最近太忙,忙着学习C#。挺不错的语言,与PS很相近,其中的很多东西都是共通的。
今天和大家讨论一个关于DNS的话题。如何通过powershell来解析dns到主机名或者反过来?
大家可能最先想到ping命令,的确可以用这个命令来做,但我要讨论的是通过powershell本身来做,也就是不依靠外部命令来实现。
首先,我们试试从dns到ip地址的解析
给出一个dns比如www.google.com
$googledns="www.google.com"
然后,我们调用.net下面的dns类的gethostaddresses method很简单的一句话就可以实现
[system.net.dns]::gethostaddresses()
好我们这样写
$googleIPaddresses=[system.net.dns]::gethostaddresses($googledns)
这时候要注意$googleIPaddress不是一个对象,而是多对象,我们只需要其中的IP地址。可以用foreach来实现显示
foreach($ip in $googleIPaddresses)
{
$ip.ipaddresstostring
}
呵呵,完成了结果应该如下
72.14.253.104
72.14.253.147
72.14.253.99

下面我们看看怎么把IP地址反向解析成dns地址。还是用google为例,72.14.253.104这个地址对应什么dns地址呢。
$unknownip="72.14.253.104"
$dns=[system.net.dns]::gethostentry($unknownip).hostname
注意上面一句我在后面加上了hostname属性,直接把dns值赋值给$dns这个变量,应为该method返回的是一个对象,所以我可以直接引用该对象的某个属性。
这时候敲入$dns就会得到其dns地址。

怎么样用.net实现也很简单吧?

http://bbs.winos.cn/thread-33815-1-1.html

回复 2# PowerShell


    纯转载,未修改。

TOP

返回列表