在Visual Basic中添加32位二进制文​​件

时间:2014-02-28 01:30:56

标签: vb.net binary ip decimal

我必须计算IPv4子网地址,这可以通过将IP地址二进制文件添加到子网掩码二进制文件来实现。我可以使用此代码将它们转换为二进制文件

    Public Function Dec2Bin(ByVal DeciValue As Long, Optional ByVal NoOfBits As Integer = 8) _
 As String
    Dim i As Integer
    Do While DeciValue > (2 ^ NoOfBits) - 1
        NoOfBits = NoOfBits + 8
    Loop
    Dec2Bin = vbNullString
    For i = 0 To (NoOfBits - 1)
        Dec2Bin = CStr((DeciValue And 2 ^ i) / 2 ^ i) & Dec2Bin
    Next i
End Function

但是现在如何将两个32位字符串添加到一起才能获得子网地址?我也有dec-to-bin功能,所以我不需要任何帮助。

1 个答案:

答案 0 :(得分:0)

所以,我怀疑DeciValue是你的32位数字表示的IP地址,NoOfBits是子网掩码中的位数(对于255.0.0.0为8,对于255.255.0.0为16)和255.255.255.0等24)。

你可以做的是:

Public Function Network_Address(IP as UInteger, Optional Mask as UInteger = 0)
    If Mask = 0 Then
        Mask = 8 * ((IP >> 30) + 1)
    End If
    Network_Address = IP And (4294967295 Xor ((2 ^ (32 - Mask)) - 1))
End Function

现在您将网络地址作为其数字表示。我怀疑那就是你想要的。

如果没有指定IP功能,该功能也会自动检测IP子网掩码大小。