你可以调用ipconfig命令,生成一个文本,然后用程序在文本中判断,
win2000: ipconfig > ip.txtwin98:    winipcfg > ip.txt

解决方案 »

  1.   

    Private Const WS_VERSION_REQD = &H101
    Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
    Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
    Private Const MIN_SOCKETS_REQD = 1
    Private Const SOCKET_ERROR = -1
    Private Const WSADescription_Len = 256
    Private Const WSASYS_Status_Len = 128Private Type HOSTENT
      hName As Long
      hAliases As Long
      hAddrType As Integer
      hLength As Integer
      hAddrList As Long
    End TypePrivate Type WSADATA
      wversion As Integer
      wHighVersion As Integer
      szDescription(0 To WSADescription_Len) As Byte
      szSystemStatus(0 To WSASYS_Status_Len) As Byte
      iMaxSockets As Integer
      iMaxUdpDg As Integer
      lpszVendorInfo As Long
    End TypePrivate Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
    Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired&, lpWSAData As WSADATA) As Long
    Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
    Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal hostname$) As Long
    Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&)' #VBIDEUtils#************************************************************
    ' * Programmer Name  : Waty Thierry
    ' * Web Site        : www.geocities.com/ResearchTriangle/6311/
    ' * E-Mail          : [email protected]
    ' * Date            : 13/10/98
    ' * Time            : 10:24
    ' * Module Name      : IP_Module
    ' * Module Filename  : IP.bas
    ' **********************************************************************
    ' * Comments        :
    ' * Find IP address ginving the hostname
    ' **********************************************************************Function hibyte(ByVal wParam As Integer)
      
      hibyte = wParam \ &H100 And &HFF&
      
    End FunctionFunction lobyte(ByVal wParam As Integer)
      
      lobyte = wParam And &HFF&
      
    End FunctionSub SocketsInitialize()
      
      Dim WSAD As WSADATA
      Dim iReturn As Integer
      Dim sLowByte As String, sHighByte As String, sMsg As String
      
      iReturn = WSAStartup(WS_VERSION_REQD, WSAD)
      
      If iReturn <> 0 Then
          MsgBox "Winsock.dll is not responding."
          End
      End If
      
      If lobyte(WSAD.wversion) < WS_VERSION_MAJOR Or (lobyte(WSAD.wversion) = WS_VERSION_MAJOR And hibyte(WSAD.wversion) < WS_VERSION_MINOR) Then
          sHighByte = Trim$(Str$(hibyte(WSAD.wversion)))
          sLowByte = Trim$(Str$(lobyte(WSAD.wversion)))
          sMsg = "Windows Sockets version " & sLowByte & "." & sHighByte
          sMsg = sMsg & " is not supported by winsock.dll "
          MsgBox sMsg
          End
      End If
      
      If WSAD.iMaxSockets < MIN_SOCKETS_REQD Then
          sMsg = "This application requires a minimum of "
          sMsg = sMsg & Trim$(Str$(MIN_SOCKETS_REQD)) & " supported sockets."
          MsgBox sMsg
          End
      End If
      
    End SubSub SocketsCleanup()
      Dim lReturn As Long
      
      lReturn = WSACleanup()
      
      If lReturn <> 0 Then
          MsgBox "Socket error " & Trim$(Str$(lReturn)) & " occurred in Cleanup "
          End
      End If
      
    End SubSub Form_Load()
      
      SocketsInitialize
      
    End SubPrivate Sub Form_Unload(Cancel As Integer)
      
      SocketsCleanup
      
    End SubPrivate Sub Command1_click()
      Dim hostent_addr As Long
      Dim host As HOSTENT
      Dim hostip_addr As Long
      Dim temp_ip_address() As Byte
      Dim i As Integer
      Dim ip_address As String
      
      hostent_addr = gethostbyname(Text1)
      
      If hostent_addr = 0 Then
          MsgBox "Can't resolve name."
          Exit Sub
      End If
      
      RtlMoveMemory host, hostent_addr, LenB(host)
      RtlMoveMemory hostip_addr, host.hAddrList, 4
      
      ReDim temp_ip_address(1 To host.hLength)
      RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength
      
      For i = 1 To host.hLength
          ip_address = ip_address & temp_ip_address(i) & "."
      Next
      ip_address = Mid$(ip_address, 1, Len(ip_address) - 1)
      
      MsgBox ip_address
      
    End Sub
      

  2.   

    放个WinSock控件,读Winsock.LocalHostIP