OVH Cloud OVH Cloud

adresse IP

3 réponses
Avatar
infomaroc
bonsoir
comment pourrais-je recuperer l'adresse ip de mon poste avec un code VB?
y'ai t il une api qui fait ca???
merci de me donner une piste!

3 réponses

Avatar
Jacques \(Be\)
Bonjour,

Par exemple sur un bouton ...

Private Sub Command1_Click()
Dim Adr As IPtype
Dim Nom As String
Dim Adresse As String
'
Adr = ObtenirAdresseIP
'
p% = InStr(Adr.Nom, Chr$(0))
If p% <> 0 Then
Nom = "Nom = " & Left$(Adr.Nom, p% - 1)
Adresse = Trim$(Adr.AdresseIP)
MsgBox Nom & vbCrLf & "Adresse IP = " & Adresse
End If
End Sub

et tu mets ce code-ci dans um module

Public Type HOSTENT
hName As Long
haliases As Long
hAddrtype As Integer
hLength As Integer
hAddrList As Long
End Type
'
Public Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To 256) As Byte
szSystemStatus(0 To 128) As Byte
iMaxsockets As Integer
iMaxUpDg As Integer
lpszVendorInfo As Long
End Type
'
Public Declare Function WSAStartup Lib "wsock32.dll" _
(ByVal wVersion&, lpWSAData As WSADATA) As Long
Public Declare Function WSACleanup Lib "wsock32.dll" () As Long
Public Declare Function gethostname Lib "wsock32.dll" _
(ByVal HostName As String, ByVal HostLen As Integer) As Long
Public Declare Function gethostbyname Lib "wsock32.dll" (ByVal HostName As
String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Dest As Any, ByVal source As Long, ByVal cbCopy As Long)


Public Const SOCKET_ERROR = -1
'
Public Type IPtype
Nom As String * 256
AdresseIP As String * 64
End Type

Public Function ObtenirAdresseIP() As IPtype
Dim WSAD As WSADATA
Dim Host As HOSTENT
Dim RetVal As Long
Dim Nom As String * 256
Dim Adresse As Long
Dim IPadr As String
Dim Temp() As Byte
'
RetVal = WSAStartup(&H101, WSAD)
If RetVal <> 0 Then
MsgBox "Winsock.dll ne répond pas"
ObtenirAdresseIP.Nom = ""
ObtenirAdresseIP.AdresseIP = ""
Exit Function
End If

If gethostname(Nom, Len(Nom)) = SOCKET_ERROR Then
MsgBox "Erreur Winsock"
ObtenirAdresseIP.Nom = ""
ObtenirAdresseIP.AdresseIP = ""
Exit Function
End If
Adresse = gethostbyname(Nom)
If Adresse = 0 Then
MsgBox "Winwock.dll ne repond pas"
ObtenirAdresseIP.Nom = ""
ObtenirAdresseIP.AdresseIP = ""
Exit Function
End If

'
CopyMemory Host, Adresse, Len(Host)
CopyMemory Adresse, Host.hAddrList, 4
'
ReDim Temp(1 To Host.hLength)
'
CopyMemory Temp(1), Adresse, Host.hLength
'
For i% = 1 To Host.hLength
IPadr = IPadr & Temp(i%) & "."
Next i%
'
IPadr = Left$(IPadr, Len(IPadr) - 1)
ObtenirAdresseIP.Nom = Nom
ObtenirAdresseIP.AdresseIP = IPadr
RetVal = WSACleanup()
End Function

"infomaroc" a écrit dans le message de
news:
bonsoir
comment pourrais-je recuperer l'adresse ip de mon poste avec un code VB?
y'ai t il une api qui fait ca???
merci de me donner une piste!


Avatar
X
Bonjour, ou juste ça :

Dim ip
ip = Winsock1.LocalIP

avec le composant WinSock
menu = <projet composants [X] microsoft Wonsock control 6>

--------------------

"infomaroc" a écrit dans le message de news:

bonsoir
comment pourrais-je recuperer l'adresse ip de mon poste avec un code VB?
y'ai t il une api qui fait ca???
merci de me donner une piste!


Avatar
infomaroc
merci bcp jacques et X!
dire ke j'ai utilisé pas mal de fois le composant winsock, et j'ai pas eu
cette idée :(:(:(:(:(
l'idée des fonctions aussi est interessante
bonne journée