我使用的脚本有一个名为SourceIP的变量。我有一些VPN池的IP范围静态列表。如何设置搜索逻辑以确定源IP所在的IP池?
以下是示例详细信息:
SourceIP = 15.15.7.49
VPNpool1 = 15.15.1.0 - 15.15.9.255
VPNPool2 = 15.15.10.0 - 15.15.19.255
通常,当我想查看值是否在值列表中时,我使用如果VARIABLE包含ITEM1,ITEM2,ITEMn 。此方法不适用于VPN池范围,因为我必须列出每个 IP。我希望有人知道如何才能做到这一点。
也许是这样的:
If SourceIP in VPNPool1
{
MsgBox The SourceIP is from VPNPool1
}
If SourceIP in VPNPool12
{
MsgBox The SourceIP is from VPNPool2
}
Else
{
MsgBox The SourceIP is not in a VPNPool.
}
答案 0 :(得分:1)
试试这个。确保您拥有支持对象的最新AutoHotkey版本。
IP := "15.15.9.254"
Start := "15.15.1.0"
End := "15.15.9.255"
if InIPRange(IP, Start, End)
msgbox yes
else
msgbox no
InIPRange(strIP, strStart, strEnd) {
arrIPRanges := {}
loop, parse, strStart, .
arrIPRanges[A_Index, A_LoopField] := A_LoopField
loop, parse, strEnd, .
arrIPRanges[A_Index, A_LoopField] := A_LoopField
loop, parse, strIP, .
{
if arrIPRanges[A_Index].MinIndex() > A_LoopField
return false
if arrIPRanges[A_Index].MaxIndex() < A_LoopField
return false
}
return true
}