Appel des informations RIPE pour une adresse IP
Publié : dim. 20/août/2006 22:04
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.
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