Public Function IPzhuanLong(ByVal IPstr As String) As Long
  IPzhuanLong = 0
  Dim FenGeShuZhu1() As String = IPstr.Split(".") '把一行分成数组,用.分割
  If UBound(FenGeShuZhu1) = 3 Then '数组大小是4
  If IsNumeric(FenGeShuZhu1(0)) And IsNumeric(FenGeShuZhu1(1)) And IsNumeric(FenGeShuZhu1(2)) And IsNumeric(FenGeShuZhu1(3)) Then
  IPzhuanLong = CInt(FenGeShuZhu1(0)) * 256 * 256 * 256 + CInt(FenGeShuZhu1(1)) * 256 * 256 + CInt(FenGeShuZhu1(2)) * 256 + CInt(FenGeShuZhu1(3))
  End If
  End If
 End Function
调用IPzhuanLong("233.221.23.34")
出现溢出错误,请高手指点一下.

解决方案 »

  1.   

    不用那么麻烦,多看看MSDN...
    BitConverter.ToInt32(System.Net.IPAddress.Parse("233.221.23.34").GetAddressBytes(), 0)
    也可以用...
    System.Net.IPAddress.Parse("233.221.23.34").Address
    但Address属性已过时,不推荐...
      

  2.   

    改成UInt32比较好,用无符号整数...
    BitConverter.ToUInt32(System.Net.IPAddress.Parse("233.221.23.34").GetAddressBytes(), 0)
      

  3.   

    System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("");
    long ip= ipaddress.Address;int _StarInt =BitConverter.ToInt32(_StarAddress.GetAddressBytes(),0);
      

  4.   


    最好是换用IPAddress.TryParse,防止异常
    http://msdn.microsoft.com/zh-cn/library/system.net.ipaddress.tryparse(v=VS.95).aspx