Récupérer son adresse ip internet (version simple et qui fonctionne)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 437 fois - Téléchargée 31 fois

Contenu du snippet

Il y a déjà de nombreux codes vb traitant ce sujet, j'en suis conscient, mais beaucoup s'avèrent complexes, nécessitent des modules ou d'autres choses bien lourdes ou trop vagues, et on a de la chance quand on trouve un code qui fonctionne bien sur ce sujet... Je trouve ridicule de devoir pondre autant de lignes pour récupérer une simple IP Internet.

C'est donc la raison pour laquelle je poste cette petite source de ma composition, d'un niveau gros débutant, certes, mais qui a le mérite de fonctionner à 100% et qui se présente sous la forme d'une fonction facile à comprendre et à exploiter. Si vous avez trouvé plus simple que moi, soyez indulgents svp, et postez vos solutions, ça fera avancer le chmillblick ;)

Source / Exemple :


Function InternetIP() As String

'Cette fonction nécessite 2 controles:
'Un Rich Text Box (que j'ai nommé dans cette source rt1) et un Inet (que j'ai nommé inet1)
'Le controle Inet permet de se connecter à un site ou un ftp, et le controle Rich Text permet de stocker des caractères,
'comme une variable chaine de caractères, mais avec une beaucoup plus grande capacité (ce controle ressemble beaucoup au
'bloc-note de windows au niveau de ses propriétés)

'Si l'on n'arrive pas à se connecter, une erreur surviendra.
'On récupère ici cette erreur pour prévenir l'utilisateur qu'il n'est pas connecté (voir les 2 dernières lignes de la fonction)
On Error GoTo PasDeNet
                
            'On se connecte à un site fournissant l'ip (mon-ip.com dans cet exemple) à travers Inet
            With Inet1
            .AccessType = icUseDefault 'On spécifie un accès aux données par défaut
            .Protocol = icHTTP 'On spécifie que l'on travaille en HTTP
            .RequestTimeout = 5 'On spécifie le temps accordé pour la tentative de connexion
            RT1.Text = .OpenURL("http://www.mon-ip.com/", icString) 'On spécifie l'Url et la cible (le rich text box) dans laquelle on stocke les données
            Do Until .StillExecuting = False 'StillExecuting permet d'attendre que toutes les données de la page soient chargées
            DoEvents
            Loop
            End With
                
'Les variables suivantes servent à repérer l'emplacement de l'ip dans le texte récupéré dans le rich text box
Dim DebuT, FiN As String
DebuT = "<DIV class=IP>Votre adresse IP est "
FiN = "</DIV>"
l1 = InStr(1, RT1.Text, DebuT, vbTextCompare)
l2 = InStr(l1, RT1.Text, FiN, vbTextCompare)
l1 = l1 + Len(DebuT)
l2 = l2 - l1

'On renvoie l'ip trouvée
InternetIP = Mid(RT1.Text, l1, l2)
Exit Function

PasDeNet:
InternetIP = "Pas de connexion internet détectée ou site de référence offline"

End Function

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
22
ET puis executer un script est térriblement dangeureux !!! Qu'est-ce qui te dis que le script que tu va exectuer n'a pas été remplacé par un script destructeur ?

CR
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
certes.
mais aucunement besoin d'un vbs pour ca....

l'IP donnée ici est l'IP internet, pas l'IP locale.
Messages postés
23
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
31 mars 2006

ben c pareil, sauf que ca ce fait en deux lignes au lieux de autant que dans le code donné ci dessu

Dim objSocket

Set objSocket = CreateObject("MSWinsock.Winsock")
msgbox ("Votre Adresse IP est:" & objSocket.localip)

ca va quand même plus vite non?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
quel interet de passer par un script VBS ?
Messages postés
23
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
31 mars 2006

je vois pas bien l'intérêt dans le sens où un script VBS le ferais en deux lignes de code, il suffit alors d'appeller le script avec un shell et le tour est joué
Afficher les 20 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.