begin process at 2012 02 09 02:21:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > CONNAITRE SON IP EXTERNE ( INTERNET )

CONNAITRE SON IP EXTERNE ( INTERNET )


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Niveau :Débutant Date de création :25/08/2002 Date de mise à jour :13/01/2003 17:56:06 Vu / téléchargé :5 550 / 387

Auteur : pHoEnIxFuRy

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

Bon changé completement la méthode suite à la remarque de YoYoGoTT.
La détection se fait maintenant via une page php.
        

Source

  • Dans un module :
  • Option Explicit
  • Dim VbString, IP As String
  • Dim StrEnd, a As Integer
  • Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  • Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
  • Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
  • Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
  • Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
  • Public Const INTERNET_OPEN_TYPE_DIRECT = 1
  • Public Const INTERNET_OPEN_TYPE_PROXY = 3
  • Public Const scUserAgent = "VB OpenUrl"
  • Public Const INTERNET_FLAG_RELOAD = &H80000000
  • Sub GetIp(URL As String)
  • Dim hOpen As Long
  • Dim hOpenUrl As Long
  • Dim bDoLoop As Boolean
  • Dim bRet As Boolean
  • Dim sReadBuffer As String * 2048
  • Dim lNumberOfBytesRead As Long
  • Dim sBuffer As String
  • hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  • hOpenUrl = InternetOpenUrl(hOpen, URL, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  • bDoLoop = True
  • While bDoLoop
  • sReadBuffer = vbNullString
  • bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
  • sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
  • If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
  • Wend
  • VbString = sBuffer
  • VbString = Mid(VbString, InStr(VbString, "IP Address:") + 12, 20)
  • StrEnd = InStr(VbString, "<br>") - 2
  • For a = 1 To StrEnd
  • IP = IP + Mid(VbString, a, 1)
  • Next
  • FrmMyIP.TxtIP.Text = IP
  • IP = ""
  • If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
  • If hOpen <> 0 Then InternetCloseHandle (hOpen)
  • End Sub
  • Dans une Form avec une TextBox (TxtIP) et un bouton de commande (CmdOK) :
  • Private Sub CmdOK_Click()
  • End
  • End Sub
  • Private Sub Form_Load()
  • Call GetIp("http://checkip.dyndns.org/")
  • End Sub
  • Private Sub Form_Unload(Cancel As Integer)
  • End
  • End Sub
Dans un module :

Option Explicit

Dim VbString, IP As String
Dim StrEnd, a As Integer

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const scUserAgent = "VB OpenUrl"
Public Const INTERNET_FLAG_RELOAD = &H80000000

Sub GetIp(URL As String)

        Dim hOpen As Long
        Dim hOpenUrl As Long
        Dim bDoLoop As Boolean
        Dim bRet As Boolean
        Dim sReadBuffer As String * 2048
        Dim lNumberOfBytesRead As Long
        Dim sBuffer As String

        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
        hOpenUrl = InternetOpenUrl(hOpen, URL, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)

        bDoLoop = True
        While bDoLoop
                sReadBuffer = vbNullString
                bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
                sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
                If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
        Wend
        
        VbString = sBuffer
        
        VbString = Mid(VbString, InStr(VbString, "IP Address:") + 12, 20)
        StrEnd = InStr(VbString, "<br>") - 2

        For a = 1 To StrEnd
            IP = IP + Mid(VbString, a, 1)
        Next
        
        FrmMyIP.TxtIP.Text = IP
        
        IP = ""
        
        If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
        If hOpen <> 0 Then InternetCloseHandle (hOpen)

End Sub

Dans une Form avec une TextBox (TxtIP) et un bouton de commande (CmdOK) :

Private Sub CmdOK_Click()
End
End Sub

Private Sub Form_Load()

Call GetIp("http://checkip.dyndns.org/")

End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

 Conclusion

Si qqu'un veut cependant l'ancienne source, envoyez moi un message.  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

Commentaires et avis

Commentaire de pHoEnIxFuRy le 25/08/2002 21:46:03

Des commentaires plz

Commentaire de YoYoGoTT le 27/08/2002 15:40:59

Salut,
Si j'ai bien compris ton code, tu envois un mail, tu attends la réponse et tu lis dans le mail reçu l'adresse IP que tu as envoyé avec le mail ... ?
Ok, c'est bien pour l'entrainement mais pourquoi ne vas-tu pas lire tout simplement la page internet d'un site qui te propose ton IP Internet comme : "http://www.3aci.com/TCPIP.php" et tu la mets dans une variable.
Ca peut être beaucoup plus utile et tu évites la connexion avec User, Password, BDR, Etc.

Commentaire de pHoEnIxFuRy le 27/08/2002 18:14:54

Ba

Commentaire de pHoEnIxFuRy le 27/08/2002 18:20:53

Bah a vrai dire c'est ce que je voulais faire en premier avec le shields up de grc.com mais j'ai pas réussi avec leur page car elle ont un format spécifique.
Mais j'ai regardé ton lien et je pense qu'en effet, ca va etre beaucoup plus simple ( je suis déjà dessus :D ). A supposer que cette page va pas disparaitre d'ici peu.
Merci donc pour l'info ;-)
Cependant je pense que la source du prog permet de voir quand même l'interet et la simplicité de winsock pour les mails.

Commentaire de YoYoGoTT le 28/08/2002 08:45:12

Exact, très utile en tant qu'exercice ;-)

Commentaire de YoYoGoTT le 28/08/2002 08:47:02

Exact, très utile en tant qu'exercice ;-)

Commentaire de BlackGoddess le 03/10/2002 16:05:11

euh ... tu crée un controle winsock, tu le connect sur n'importe quel URL sur le port 80, et tu vois ds WS.LocalHost ou un truc comme ca, c ton ip internet... ca tiens sur 2-3 lignes ...

Commentaire de pHoEnIxFuRy le 03/10/2002 20:17:32

OK mais comme précisé dans l'intitulé de la source le but est d'obtenir l'IP externe cad celle que tu as sur internet. Je suppose que tu as un modem directement connecter à ton PC sans réseau mais lorsque ton PC fait partie d'un réseau local il possède ainsi une adresse locale du genre 192.168.0.1. La commande que tu as suggéré ne donne que l'IP locale dans ca cas-ci. En gros si tu est derrière un routeur comme souvent dans les entreprises par exemple alors mon code peut être utile, enfin je pense :D.

Commentaire de zorglob le 13/01/2003 14:13:20

Bonjour je viens de tester ce code ainsi que le site internet cite plus haut et visiblement ca ne marche pas car il me sors une ip qui n'a rien a voir avec mon ip externe. Bizarre.

Pour info je suis sous XP Pro avec connection ADSL

Commentaire de pHoEnIxFuRy le 13/01/2003 17:59:47

Voilà G remis à jour le code.
La page en php ki renseignait l'ip au prog n'était plus disponible.
G pris la page de chez DynDNS car celle-ci ne changera probablement pas.
Voilà normalement pas de soucis ;-)

Commentaire de Noiretulipe le 24/03/2003 09:49:05

ça à l'air de bien marcher ! Merci !

Commentaire de Cho7Kipu le 04/08/2003 18:03:19

une page en php ki indik l'adresse ip de la personne ca prend 1 ligne :
&lt;? print($REMOTE_ADDR); ?&gt;

Voilà, ya plu k'a ouvrir sous IE et ca fé un joli fichier ne contenant que l'ip, très facile a explorer via VB

Commentaire de pHoEnIxFuRy le 04/08/2003 18:12:59

LOL toi tu m'en veux pour mon commentaires sur ta source. :p

Bah en fait je passe pas par un fichier mais j'attaque directement le buffer ce qui est justement l'intéret principal du prog !

Et je crée pas un page php car il faut ensuite l'héberger sur un serveur externe qui soit bien sûr dispo 24h/24.

J'ai par exemple utilisé ce code pour faire ma MAJ chez DynDNS et ceci en consultant l'IP directement sur mon routeur pour éviter les pb d'indisponibilité.

Voilà @+

Commentaire de Cho7Kipu le 04/08/2003 18:36:48

non c pa vré jten veu pas... enfin... ptetre *un peu*...
Mé bon chui pa rancunié c juste sur le moment j'memballe vite kan on me critik mes sources fé avec tout plein d'amour...
Allez va, on enterra la hache de guerre...

++
la tite cho7

Commentaire de davidv24 le 07/02/2004 14:41:26

ça ne marche pas chez moi... La fenêtre reste vide...

Commentaire de Frank339 le 25/04/2004 22:44:24

ooopsss une fenetre mais seulement un boutton ok... marche pas chez moi :-s

la question est de savoir pourquoi... winxp / vb6 / routeur

Commentaire de rgautomatisation le 11/08/2004 23:46:55

Salut
Juste une idée comme ca.... dans mon cas, j'ai un routeur avec une page status, j'ai mon adresse externe alors est-ce possible d'avoir access a cette page afin d'avoir l'ip externe (ca demande identification parcontre).
RGautomatisation

Commentaire de pHoEnIxFuRy le 12/08/2004 10:57:22

msg du 04/08/2003 : "J'ai par exemple utilisé ce code pour faire ma MAJ chez DynDNS et ceci en consultant l'IP directement sur mon routeur pour éviter les pb d'indisponibilité."

La réponse est donc oui. :D

J'ai mis le soft à dispo sur un site plus ou moins dédié à mon modem il y a un an : http://www.forpage.com/forum/viewtopic.php?t=3640&start=0&postdays=0&postorder=asc&highlight=

Maintenant mon modem gère cette maj grâce à un nouveau firmware et de plus je suis passé en ip fixe.

Donc désolé pour le support que je n'ai pas assuré pour les derniers message.

++

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,995 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales