 
- 帖子
- 380
- 积分
- 1159
- 技术
- 28
- 捐助
- 0
- 注册时间
- 2008-8-21
|
好多天没有更新这个系列了,不是我偷懒,实在最近太忙,忙着学习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 |
|