Bonjour à tous
j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une
valeur (déclarée en VBA : 212.198.54.1).
Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Pierron
Bonsoir Help Me; With CreateObject("MSWinsock.Winsock") If .LocalIP = "212.198.54.1" then MsgBox "C'est OK !", 64 Else MsgBox "IP différente !",64 End If End With
MP
"Help Me" a écrit dans le message de news:41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
Bonsoir Help Me;
With CreateObject("MSWinsock.Winsock")
If .LocalIP = "212.198.54.1" then
MsgBox "C'est OK !", 64
Else
MsgBox "IP différente !",64
End If
End With
MP
"Help Me" <help@me.com> a écrit dans le message de
news:41e29c74$0$22200$79c14f64@nan-newsreader-05.noos.net...
Bonjour à tous
j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une
valeur (déclarée en VBA : 212.198.54.1).
Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si
ce
Bonsoir Help Me; With CreateObject("MSWinsock.Winsock") If .LocalIP = "212.198.54.1" then MsgBox "C'est OK !", 64 Else MsgBox "IP différente !",64 End If End With
MP
"Help Me" a écrit dans le message de news:41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
anomymousA
bonjour,
avec ta procédure j'obtiens le message d'erreur Erreur 429 "un composant ActiveX ne peut créer d'objet".Tu peux surement m'expliquer pourquoi.
Par contre avec cette procédure beaucoup + lourde j'en conviens, j'arrive à mes fins dans la mesure où je n'ai pas à utiliser le composant ActiveX WinSock.
Private Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long Private Declare Function WSACleanup Lib "wsock32" () As Long Private Declare Function gethostname Lib "wsock32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long Private Declare Function gethostbyname Lib "wsock32" (ByVal HostName As String) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest As Any, xSource As Any, ByVal nBytes As Long) Private Const MAX_WSADescription As Long = 256 Private Const MAX_WSASYSStatus As Long = 128 Private Const WS_VERSION_REQD As Long = &H101 Private Const IP_SUCCESS As Long = 0 Private Const SOCKET_ERROR As Long = -1 Private Const NO_ERROR = 0 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 Type Hostent hName As Long hAliases As Long hAddrType As Integer hLen As Integer hAddrList As Long End Type
' Renvoie l'adresse IP 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 ' Si GetHostName ne marche pas If gethostname(sHostName, 256) = SOCKET_ERROR Then GetIPAddress = "" Call SocketsCleanup Exit Function End If sHostName = Trim$(sHostName) lpHost = gethostbyname(sHostName) ' Si l'adresse récupérée est vide If lpHost = 0 Then GetIPAddress = "" Call SocketsCleanup Exit Function End If ' On formate l'adresse pour qu'elle soit de la forme xxx.xxx.xxx.xxx CopyMemory HOST, ByVal lpHost, Len(HOST) CopyMemory dwIPAddr, ByVal HOST.hAddrList, 4 ReDim tmpIPAddr(1 To HOST.hLen) CopyMemory tmpIPAddr(1), ByVal dwIPAddr, HOST.hLen For i = 1 To HOST.hLen sIPAddr = sIPAddr & tmpIPAddr(i) & "." Next ' On renvoie la valeur GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1) Call SocketsCleanup End Function
' Vide le socket Public Function SocketsCleanup() SocketsCleanup = IIf(WSACleanup() = 0, True, False) End Function
' Initialise le socket Public Function SocketsInitialize() As Boolean Dim WSAD As WSADATA SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS End Function
Sub toto() MsgBox GetIPAddress End Sub
A+
Bonsoir Help Me; With CreateObject("MSWinsock.Winsock") If .LocalIP = "212.198.54.1" then MsgBox "C'est OK !", 64 Else MsgBox "IP différente !",64 End If End With
MP
"Help Me" a écrit dans le message de news:41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
bonjour,
avec ta procédure j'obtiens le message d'erreur Erreur 429 "un composant
ActiveX ne peut créer d'objet".Tu peux surement m'expliquer pourquoi.
Par contre avec cette procédure beaucoup + lourde j'en conviens, j'arrive à
mes fins
dans la mesure où je n'ai pas à utiliser le composant ActiveX WinSock.
Private Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As
Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "wsock32" () As Long
Private Declare Function gethostname Lib "wsock32" (ByVal szHost As String,
ByVal dwHostLen As Long) As Long
Private Declare Function gethostbyname Lib "wsock32" (ByVal HostName As
String) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest
As Any, xSource As Any, ByVal nBytes As Long)
Private Const MAX_WSADescription As Long = 256
Private Const MAX_WSASYSStatus As Long = 128
Private Const WS_VERSION_REQD As Long = &H101
Private Const IP_SUCCESS As Long = 0
Private Const SOCKET_ERROR As Long = -1
Private Const NO_ERROR = 0
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 Type Hostent
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
' Renvoie l'adresse IP
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
' Si GetHostName ne marche pas
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPAddress = ""
Call SocketsCleanup
Exit Function
End If
sHostName = Trim$(sHostName)
lpHost = gethostbyname(sHostName)
' Si l'adresse récupérée est vide
If lpHost = 0 Then
GetIPAddress = ""
Call SocketsCleanup
Exit Function
End If
' On formate l'adresse pour qu'elle soit de la forme xxx.xxx.xxx.xxx
CopyMemory HOST, ByVal lpHost, Len(HOST)
CopyMemory dwIPAddr, ByVal HOST.hAddrList, 4
ReDim tmpIPAddr(1 To HOST.hLen)
CopyMemory tmpIPAddr(1), ByVal dwIPAddr, HOST.hLen
For i = 1 To HOST.hLen
sIPAddr = sIPAddr & tmpIPAddr(i) & "."
Next
' On renvoie la valeur
GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
Call SocketsCleanup
End Function
' Vide le socket
Public Function SocketsCleanup()
SocketsCleanup = IIf(WSACleanup() = 0, True, False)
End Function
' Initialise le socket
Public Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
End Function
Sub toto()
MsgBox GetIPAddress
End Sub
A+
Bonsoir Help Me;
With CreateObject("MSWinsock.Winsock")
If .LocalIP = "212.198.54.1" then
MsgBox "C'est OK !", 64
Else
MsgBox "IP différente !",64
End If
End With
MP
"Help Me" <help@me.com> a écrit dans le message de
news:41e29c74$0$22200$79c14f64@nan-newsreader-05.noos.net...
Bonjour à tous
j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une
valeur (déclarée en VBA : 212.198.54.1).
Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si
ce
avec ta procédure j'obtiens le message d'erreur Erreur 429 "un composant ActiveX ne peut créer d'objet".Tu peux surement m'expliquer pourquoi.
Par contre avec cette procédure beaucoup + lourde j'en conviens, j'arrive à mes fins dans la mesure où je n'ai pas à utiliser le composant ActiveX WinSock.
Private Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long Private Declare Function WSACleanup Lib "wsock32" () As Long Private Declare Function gethostname Lib "wsock32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long Private Declare Function gethostbyname Lib "wsock32" (ByVal HostName As String) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest As Any, xSource As Any, ByVal nBytes As Long) Private Const MAX_WSADescription As Long = 256 Private Const MAX_WSASYSStatus As Long = 128 Private Const WS_VERSION_REQD As Long = &H101 Private Const IP_SUCCESS As Long = 0 Private Const SOCKET_ERROR As Long = -1 Private Const NO_ERROR = 0 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 Type Hostent hName As Long hAliases As Long hAddrType As Integer hLen As Integer hAddrList As Long End Type
' Renvoie l'adresse IP 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 ' Si GetHostName ne marche pas If gethostname(sHostName, 256) = SOCKET_ERROR Then GetIPAddress = "" Call SocketsCleanup Exit Function End If sHostName = Trim$(sHostName) lpHost = gethostbyname(sHostName) ' Si l'adresse récupérée est vide If lpHost = 0 Then GetIPAddress = "" Call SocketsCleanup Exit Function End If ' On formate l'adresse pour qu'elle soit de la forme xxx.xxx.xxx.xxx CopyMemory HOST, ByVal lpHost, Len(HOST) CopyMemory dwIPAddr, ByVal HOST.hAddrList, 4 ReDim tmpIPAddr(1 To HOST.hLen) CopyMemory tmpIPAddr(1), ByVal dwIPAddr, HOST.hLen For i = 1 To HOST.hLen sIPAddr = sIPAddr & tmpIPAddr(i) & "." Next ' On renvoie la valeur GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1) Call SocketsCleanup End Function
' Vide le socket Public Function SocketsCleanup() SocketsCleanup = IIf(WSACleanup() = 0, True, False) End Function
' Initialise le socket Public Function SocketsInitialize() As Boolean Dim WSAD As WSADATA SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS End Function
Sub toto() MsgBox GetIPAddress End Sub
A+
Bonsoir Help Me; With CreateObject("MSWinsock.Winsock") If .LocalIP = "212.198.54.1" then MsgBox "C'est OK !", 64 Else MsgBox "IP différente !",64 End If End With
MP
"Help Me" a écrit dans le message de news:41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
j
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip) en vba
Sub ip() Set fs = CreateObject("Scripting.FileSystemObject") Set sh = CreateObject("WScript.Shell") On Error Resume Next sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True sh.Run "ipconfig /All /batch C:ip1.txt", 0, True On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt") Loop
'lire le fichier texte créé par le batch Set fich = fs.OpenTextFile("c:ip1.txt", 1, False) Do While Not fich.AtEndOfStream txt = fich.readLine If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address") > 1 Then txt = Right(txt, Len(txt) - InStr(txt, ":")) MsgBox txt End If Loop fich.Close
'ménage fs.deletefile "c:ip1.txt" Set sh = Nothing Set fs = Nothing End Sub
"Help Me" a écrit dans le message de news: 41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip)
en vba
Sub ip()
Set fs = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
On Error Resume Next
sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True
sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True
sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True
sh.Run "ipconfig /All /batch C:ip1.txt", 0, True
On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt")
Loop
'lire le fichier texte créé par le batch
Set fich = fs.OpenTextFile("c:ip1.txt", 1, False)
Do While Not fich.AtEndOfStream
txt = fich.readLine
If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address") >
1 Then
txt = Right(txt, Len(txt) - InStr(txt, ":"))
MsgBox txt
End If
Loop
fich.Close
'ménage
fs.deletefile "c:ip1.txt"
Set sh = Nothing
Set fs = Nothing
End Sub
j@c
"Help Me" <help@me.com> a écrit dans le message de news:
41e29c74$0$22200$79c14f64@nan-newsreader-05.noos.net...
Bonjour à tous
j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une
valeur (déclarée en VBA : 212.198.54.1).
Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si
ce
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip) en vba
Sub ip() Set fs = CreateObject("Scripting.FileSystemObject") Set sh = CreateObject("WScript.Shell") On Error Resume Next sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True sh.Run "ipconfig /All /batch C:ip1.txt", 0, True On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt") Loop
'lire le fichier texte créé par le batch Set fich = fs.OpenTextFile("c:ip1.txt", 1, False) Do While Not fich.AtEndOfStream txt = fich.readLine If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address") > 1 Then txt = Right(txt, Len(txt) - InStr(txt, ":")) MsgBox txt End If Loop fich.Close
'ménage fs.deletefile "c:ip1.txt" Set sh = Nothing Set fs = Nothing End Sub
"Help Me" a écrit dans le message de news: 41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
Mich
génial merci à tous.... Michel "" a écrit dans le message de news:41e2c8e1$0$22731$
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip) en vba
Sub ip() Set fs = CreateObject("Scripting.FileSystemObject") Set sh = CreateObject("WScript.Shell") On Error Resume Next sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True sh.Run "ipconfig /All /batch C:ip1.txt", 0, True On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt") Loop
'lire le fichier texte créé par le batch Set fich = fs.OpenTextFile("c:ip1.txt", 1, False) Do While Not fich.AtEndOfStream txt = fich.readLine If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address")
1 Then txt = Right(txt, Len(txt) - InStr(txt, ":")) MsgBox txt End If Loop fich.Close
'ménage fs.deletefile "c:ip1.txt" Set sh = Nothing Set fs = Nothing End Sub
"Help Me" a écrit dans le message de news: 41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce
n'est pas la bonne, il me dise "ip différent"
Croyez vous que c'est possible ????
Merci à tous de votre aide
Michel
génial merci à tous....
Michel
"j@c" <adresse_bidon@bidon.fr> a écrit dans le message de
news:41e2c8e1$0$22731$636a15ce@news.free.fr...
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip)
en vba
Sub ip()
Set fs = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
On Error Resume Next
sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True
sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True
sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True
sh.Run "ipconfig /All /batch C:ip1.txt", 0, True
On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt")
Loop
'lire le fichier texte créé par le batch
Set fich = fs.OpenTextFile("c:ip1.txt", 1, False)
Do While Not fich.AtEndOfStream
txt = fich.readLine
If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address")
1 Then
txt = Right(txt, Len(txt) - InStr(txt, ":"))
MsgBox txt
End If
Loop
fich.Close
'ménage
fs.deletefile "c:ip1.txt"
Set sh = Nothing
Set fs = Nothing
End Sub
j@c
"Help Me" <help@me.com> a écrit dans le message de news:
41e29c74$0$22200$79c14f64@nan-newsreader-05.noos.net...
Bonjour à tous
j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une
valeur (déclarée en VBA : 212.198.54.1).
Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si
ce
génial merci à tous.... Michel "" a écrit dans le message de news:41e2c8e1$0$22731$
un truc un peu lourdingue pour récupérer l'adresse ip (ou les adresses ip) en vba
Sub ip() Set fs = CreateObject("Scripting.FileSystemObject") Set sh = CreateObject("WScript.Shell") On Error Resume Next sh.Run "%comspec% /c ipconfig > C:ip1.txt", 0, True sh.Run wscript.Path & "ipconfig /All /batch C:ip1.txt", 0, True sh.Run "c:windowssystem32ipconfig /All /batch C:ip1.txt", 0, True sh.Run "ipconfig /All /batch C:ip1.txt", 0, True On Error GoTo 0
Do While Not fs.fileexists("C:ip1.txt") Loop
'lire le fichier texte créé par le batch Set fich = fs.OpenTextFile("c:ip1.txt", 1, False) Do While Not fich.AtEndOfStream txt = fich.readLine If InStr(LCase(txt), "adresse ip") > 1 Or InStr(LCase(txt), "ip address")
1 Then txt = Right(txt, Len(txt) - InStr(txt, ":")) MsgBox txt End If Loop fich.Close
'ménage fs.deletefile "c:ip1.txt" Set sh = Nothing Set fs = Nothing End Sub
"Help Me" a écrit dans le message de news: 41e29c74$0$22200$
Bonjour à tous j'aimerai récupérer l'ip de la machine utilisée et la comparer avec une valeur (déclarée en VBA : 212.198.54.1). Si c'est la bonne valeur j'aimerai que la macro me dise "c'est ok" et si ce