asp遍历IIS站点,并导出iis域名列表

最近中国互联网掀起扫黄风波,然而新网让我这边提供服务器上的所有站点的域名,及相应的备案号等信息,汗,这服务器上IIS上近300个企业网站,这下,受伤了。于是,想用程序来遍历实现。

先在服务器上,将IIS站点配置导出来,命名为iis.xml。

然后根据这XML分析显示出具体描述及相应的主机头,而需要备案的站点,都是根据主机头来的。假设,同一个网站,若使用了多个主机头(多个不同的域名),则这些域名都得要去通过备案。

然而程序页面命名为ReadIIS.asp,来读取IIS站点。程序没怎么优化,但能解决问题。具体代码如下:

程序代码
<%option explicit
dim fso
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
dim ts
Set ts = fso.OpenTextFile(server.MapPath("iis.xml"),1)  '修改此处的iis备份文件名即可,同目录下哦
dim content
content= ts.ReadAll
content=split(content,"<IIsWebServer")

function getdomain(str)
dim reg,readstr,matches,match1
set reg=new Regexp
reg.Multiline=True
reg.Global=false
reg.IgnoreCase=true
reg.Pattern="ServerComment(.*)\s"
Set matches = reg.execute(str)
  For Each match1 in matches
   readstr=match1.Value
  Next
Set matches = Nothing
Set reg = Nothing
getdomain=replace(readstr,"ServerComment=","")
getdomain=replace(getdomain,"""","")
end function

function GetKey(HTML,Start,Last)
dim filearray,filearray2
filearray=split(HTML,Start)
filearray2=split(filearray(1),Last)
GetKey=filearray2(0)
End function

function Clear(content)
dim arr,i
arr=split(content,":")

for i=0 to ubound(arr)
if instr(arr(i),".")>0 then
Clear=Clear & arr(i)
end if
next
end function

response.Clear()
dim i
for i=0 to ubound(content)
if instr(content(i),"ServerBindings")>0 then
response.Write (i)&" 描述:"&getdomain(content(i))&"<br>主机头:"&Clear(GetKey(content(i),"ServerBindings=""",""""))&"<br><br>"
end if
next
%>


引用通告: 查看所有引用 | 我要引用此文章
Tags: asp遍历IIS站点,并导出域名列表
收藏到网摘:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.