Tjohej på er... är det någon här som har någon aning om hur man kan få reda på ipnummret som gäller över internet... Vet ej om detta är vad du söker men! var inte riktigt vad jag ville... ett omständigt sätt är ju att gå via irc.. (du vet vad irc är?) erm iaf. om man har mirc (mirc.co.uk) så står det varje gång man loggar på en server "Local host: 1Cust186.tnt16.stk3.da.uu.net (213.116.220.186)" och det är det ipnummer man har. det borde ju vara lätt att få fram det via vb men jag vet faktiskt inte hur. skriv och berätta när du löser det! .) Kan det här vara något. Precis vad jag sökte efter... men det skulle vara bra om man förtod något av koden också... har du lust att förklara den lite? oj.. såg lite fel... var inte alls det där jag ville ha fram... får juh ändå bara fram IP nummret för det lokala nätverket... inte det som gäller över internet. =( Winsock.LocalIP ger mig det IP-nummer som jag tilldelats av min ISP. När jag är online, med modem. Om jag förstår ditt problem rätt så sitter du på ett lokalt nätverk med en router/proxy/brandvägg eller dylikt ut mot internet och du vill ha IPnr som finns på "utsidan " av denna denna router/proxy/brandvägg. om man nu kör winipcfg (som det tipsades om högre upp) så ser man när man är uppkopplad att det finns två saker att välja på i combolistan eller vad den nu kallas .p (termer!!!!) men iaf. klickar man fram sitt nätverkskort får man se sitt lokala ip. klickar man istället på "PPP-adapter" (som man då använder för att koppla upp sig, ne?) så får man se sitt ip "utåt". Eftersom den ip'n finns där borde det ju gå genom api eller ngt att få den relativt lätt.. eller hur? hur skulle winipcfg annars få tag på informationen?Internet IP...
om manskriver winsock.LocalIP så får man juh bara se ipnummret över det lokala nätverket, jag vill ha IP nummret över internet..
någon som vet?
tack på förhand =)
//DoRsalSv: Internet IP...
Kör du Win98/WinME kan du klicka på Start-knappen och sedan Kör och där skriva: winipcfg och klicka på Ok
Då får du fram aktuella värden
Kör du Win2000 kan du öppna Kommandotolken under Tillbehör.
Där skriver du: ipconfig och klickar på Enter
Då får du fram samma värden som i Win98/WinME.
Testa även att skriva in: ipconfig/all så får fram mer detaljerade värden
Väl mött
TorbjörnSv: Internet IP...
jag vill i mitt program se vad man har för ip över internet
asså när personen ska använda nätverks funktionen i mitt program så vill jag att han ser vad han har för ip till internert så att han enkelt kan säga det till den andra personen som ska koppla upp sig mot programmet
hmm... blev lite tjorivgt men hoppas ni förtod?Sv: Internet IP...
Sv: Internet IP...
Jag kan ej ange upphovsman för jag kommer inte
ihåg var jag har hittat denna kod.
'I Modul1
Public Const MAX_WSADescription = 256
Public Const MAX_WSASYSStatus = 128
Public Const ERROR_SUCCESS As Long = 0
Public Const WS_VERSION_REQD As Long = &H101
Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD As Long = 1
Public Const SOCKET_ERROR As Long = -1
Public Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
Public Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Integer
wMaxUDPDG As Integer
dwVendorInfo As Long
End Type
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" _
(ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" _
(ByVal szHost As String, ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" _
(ByVal szHost As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Public Function GetIPAddress() As String
Dim sHostName As String * 256
Dim lpHost As Long
Dim HOST As HOSTENT
Dim dwIPAddr As Long
Dim tmpIPAddr() As Byte
Dim i As Integer
Dim sIPAddr As String
If Not SocketsInitialize() Then
GetIPAddress = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPAddress = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
" has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
sHostName = Trim$(sHostName)
lpHost = gethostbyname(sHostName)
If lpHost = 0 Then
GetIPAddress = ""
MsgBox "Windows Sockets are not responding. " & "Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
CopyMemory HOST, lpHost, Len(HOST)
CopyMemory dwIPAddr, HOST.hAddrList, 4
ReDim tmpIPAddr(1 To HOST.hLen)
CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
For i = 1 To HOST.hLen
sIPAddr = sIPAddr & tmpIPAddr(i) & "."
Next
GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
SocketsCleanup
End Function
Public Function GetIPHostName() As String
Dim sHostName As String * 256
If Not SocketsInitialize() Then
GetIPHostName = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPHostName = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
" has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
SocketsCleanup
End Function
Public Function HiByte(ByVal wParam As Integer)
HiByte = wParam \ &H100 And &HFF&
End Function
Public Function LoByte(ByVal wParam As Integer)
LoByte = wParam And &HFF&
End Function
Public Sub SocketsCleanup()
If WSACleanup() <> ERROR_SUCCESS Then
MsgBox "Socket error occurred in Cleanup."
End If
End Sub
Public Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
Dim sLoByte As String
Dim sHiByte As String
If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
MsgBox "The 32-bit Windows Socket is not responding."
SocketsInitialize = False
Exit Function
End If
If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
MsgBox "This application requires a minimum of " & _
CStr(MIN_SOCKETS_REQD) & " supported sockets."
SocketsInitialize = False
Exit Function
End If
If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or _
(LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
sHiByte = CStr(HiByte(WSAD.wVersion))
sLoByte = CStr(LoByte(WSAD.wVersion))
MsgBox "Sockets version " & sLoByte & "." & sHiByte & _
" is not supported by 32-bit Windows Sockets."
SocketsInitialize = False
Exit Function
End If
SocketsInitialize = True
End Function
' I Formen
Private Sub Command1_Click()
On Error Resume Next
Dim ERR_INTERNAL As Variant
Dim CMP_SOURCENAME As Variant
Label1.Caption = GetIPHostName() & " " & GetIPAddress()
On Error GoTo ErrHandler
ErrHandler:
Select Case Err.Number
Case 11
' Division by zero cannot be handled in any
' sensible fashion.
Err.Raise ERR_INTERNAL + vbObjectError, _
CMP_SOURCENAME, _
LoadResString(ERR_INTERNAL)
' Other errors (not shown).
End Select
End Sub
/WolfSv: Internet IP...
Sv: Internet IP...
Sv: Internet IP...
Det kanske blir ett annat resultat när man sitter på fast lina bakom brandvägg!
Jag får fundera.
/peterSv: Internet IP...
Lite marigt eftersom du isåfall måste kommunicera med denna router/proxy/brandvägg.
En liten "workaround".
Skapa en ASP sida som visar vilket IPnr du ansluter ifrån.
Pröva på: http://www.borsholm.se/dittip.asp
Koden är:
Ditt IPnr är:<br>
<%=Request.ServerVariables("REMOTE_ADDR")%>
Hoppas jag förstår frågan rätt.
/JanneSv: Internet IP...
bara att börja klyra på den där ppp-adaptern, right?