Page 1 sur 1

Appel des informations RIPE pour une adresse IP

Publié : dim. 20/août/2006 22:04
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

Publié : dim. 20/août/2006 23:11
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:

Publié : lun. 21/août/2006 0:07
par Backup
j'ai testé en mettant mon adresse IP
ça ma renvoyé du Chinois !!! :lol:

c'est Normal ? 8O