Appel des informations RIPE pour une adresse IP

Partagez votre expérience de PureBasic avec les autres utilisateurs.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Appel des informations RIPE pour une adresse IP

Message par fweil »

Ceci pouvant rendre service à certains d'entre vous, j'ai réduit à une fonction l'appel des informations RIPE pour une adresse IP.

Ceci est utile pour connaître par exemple les infos identitaires correspondant à une IP qui se connecte à un serveur.

C'est le cas, pour ce qui me concerne, lorsque j'analyse certains logs de serveurs.

Les données identitaires correspondent à ce qui est déclaré au niveau des bases maîtresses pour les serveurs de noms associés à des adresses IP.

L'interrogation au RIPE ne permet pas de soumettre un nom de serveur, mais retourne entre autres le nom de domaine associé à une IP.

Si on veut pouvoir soumettre un nom de serveur, le mieux est d'ajouter un équivalent de ping pour récupérer l'adresse correspondant à un nom de serveur, et ensuite de soumettre cette IP au RIPE.

Pour utiliser le programme, il suffit donc d'entrer une adresse IP et de taper Return.

Code : Tout sélectionner

Enumeration
  #Window_Main
  #Gadget_String
  #Gadget_Editor
EndEnumeration

Procedure.s ReceiveNetworkString(ConnectionID, *Buffer, BufferLength)
  Result.s = ""
  Length = BufferLength
  While Length = BufferLength
    Length = ReceiveNetworkData(ConnectionID, *Buffer, BufferLength)
    Result + PeekS(*Buffer, Length)
  Wend
  ProcedureReturn Result
EndProcedure

Procedure.s RIPE(Server.s)
  BufferLength = 1000
  *Buffer = AllocateMemory(BufferLength)
  ConnectionID = OpenNetworkConnection("whois.ripe.net", 43, #PB_Network_TCP)
  If ConnectionID
      String.s = ReceiveNetworkString(ConnectionID, *Buffer, BufferLength)
      SendNetworkString(ConnectionID, "-B " + Server + Chr(10))
      String + ReceiveNetworkString(ConnectionID, *Buffer, BufferLength)
      String + ReceiveNetworkString(ConnectionID, *Buffer, BufferLength)
      CloseNetworkConnection(ConnectionID)
  EndIf
  ProcedureReturn String
EndProcedure

;
;
;
  If InitNetwork()
      WindowWidth = 640
      WindowHeight = 480
      WindowTitle.s = "RIPE information request"
      If OpenWindow(#Window_Main, 0, 0, WindowWidth, WindowHeight, WindowTitle, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
          AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #PB_Shortcut_Escape)
          AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Return, #PB_Shortcut_Return)
          If CreateGadgetList(WindowID(#Window_Main))
              StringGadget(#Gadget_String, 10, 10, WindowWidth - 20, 20, "")
              EditorGadget(#Gadget_Editor, 10, 40, WindowWidth - 20, WindowHeight - 50)
          EndIf
          Quit = #False
          Repeat
            Select WaitWindowEvent()
              Case #PB_Event_CloseWindow
                Quit = #True
              Case #PB_Event_Menu
                Select EventMenu()
                  Case #PB_Shortcut_Escape
                    Quit = #True
                  Case #PB_Shortcut_Return
                    SetGadgetText(#Gadget_Editor, RIPE(GetGadgetText(#Gadget_String)))
                EndSelect
            EndSelect
          Until Quit
      EndIf
  EndIf
  CallDebugger
End
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Je l'ai testé en envoyant la commande "help". Une commande très pratique ^^
Je le garde au chaud même si chui pas sûr de m'en servir... Ca reste très instructif

Dri :10:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai testé en mettant mon adresse IP
ça ma renvoyé du Chinois !!! :lol:

c'est Normal ? 8O
Répondre