中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 18:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]IP和整数互换[vbs版] 查看 751 回复 2
楼 主 [原创]IP和整数互换[vbs版] 发表于 2007-12-09 12:06 ·  中国 北京 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
''''''''IP和整数互换 {s11ss 2007-12-9}''''''''

Option Explicit
Dim str,re,match,n(3),i,answer,q,r

str=InputBox("请输入IP或对应的整数:","IP和整数互换","127.0.0.1")

If str="" Then WScript.Quit

Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine = false

'IP转整数:
re.Pattern = "^(\d{1,2}|\d{2}|2\d|25)\.(\d{1,2}|\d{2}|2\d|25)\.(\d{1,2}|\d{2}|2\d|25)\.(\d{1,2}|\d{2}|2\d|25)$"
If re.Test(str) Then
Set match=re.Execute(str)
For i=0 To 3
n(i)=CInt(match(0).Submatches(i))
answer=answer+n(i)*256^(3-i)
Next
InputBox vbcrlf&"IP:"&str&vbcrlf&vbcrlf&vbcrlf&"对应的整数为:","转换结果",answer
WScript.Quit
End If

'整数转IP:
re.Pattern="^\d+$"
If re.Test(str) Then
q=CLng(str)
answer=""
While q<>0
r=q Mod 256
q=q\256
If answer="" Then
answer=CStr(r)
Else
answer=CStr(r)&"."&answer
End if
Wend
InputBox vbcrlf&"整数:"&str&vbcrlf&vbcrlf&vbcrlf&"对应的IP为:","转换结果",answer
End If
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
lxmxn +8 2007-12-09 17:24
2 发表于 2007-12-09 17:26 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
不错,加分!

不过我运行出现了一个错误提示:
行: 10
字符: 1
错误: 库没有注册。
代码: 8002801D
3 发表于 2007-12-09 17:57 ·  中国 北京 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
可能问题出在Set re = New RegExp,
版主可能要下载安装这个:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=C717D943-7E4B-4622-86EB-95A22B832CAA

[ Last edited by s11ss on 2007-12-9 at 05:59 PM ]
论坛跳转: