Network ... IP // gelöst

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Network ... IP // gelöst

Beitrag von a14xerus »

Hey Leute, gibt es einen Code, mit dem Man die IP herausfindet?
ich habe mich bis jetzt immer mit dyndns connected udn von denen meien IP abgefragt, aber dann funktuioniert es nicht immer über Router...
(mit den NetworkEvents)
Aber unter Systemsetuerung -> alle verbindungen steht ja auch die IP.. also müsste man sich die doch anzeigen lassen könne.. aber achtung...
bei mir zb gibt es zwei IP's... einmal LAN und ArcorOnline... ich brauch natürlioch die Internet IP
Zuletzt geändert von a14xerus am 11.08.2006 20:36, insgesamt 1-mal geändert.
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag von Frogger »

Damit müsste es gehen

Code: Alles auswählen

Procedure.s GetMyInternetIP()
  url.s = "http://www.2mal2mal.de/public/stuff/showIP.php"
  ip2.s = ""
  GetIPBufferSize.l = 1000 
  mem.s = Space(GetIPBufferSize)  
  *lpRam = @mem
  ramsize.l = GetIPBufferSize 
  Protected agent.s, hINet.l, hData.l, Bytes.l
  agent.s = "Mozilla/4.0 (compatible; ST)"
  hINet.l = InternetOpen_( @agent.s,0,0,0,0 )
  hData.l = InternetOpenURL_( hINet, @url.s, "", 0, $8000000, 0 )
  If hData > 0 : InternetReadFile_(hData, *lpRam, ramsize.l, @Bytes.l): Else : Bytes = -1 : EndIf 
  InternetCloseHandle_(hINet):InternetCloseHandle_(hFile):InternetCloseHandle_(hData) 
  If Bytes.l
    pos.l = FindString(mem, "IP: ", 1)
    ip2.s = StringField(PeekS(@mem + pos + 3), 1, "<")
  EndIf  
  ProcedureReturn ip2.s
EndProcedure


MessageRequester("Deine IP:", GetMyInternetIP())
[PB4.20]
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

danke für die schnelle antowert.. aber genau den gleiche nsource habe ich auch.. aber anstatt
url.s = "http://www.2mal2mal.de/public/stuff/showIP.php"
habe ich
url.s = "eine andere eben.. weiß grad ncih welche"
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag von Frogger »

aber genau den gleiche nsource habe ich auch
Hab den Code erst gestern irgendwo gefunden. Weis nicht mehr genau wo (hab zuviel gesucht)
Aber Hauptsache er funktioniert!
[PB4.20]
Frank
Beiträge: 1
Registriert: 09.05.2005 22:44
Wohnort: Linden

Beitrag von Frank »

Wenn es darum geht, die IP-Adressen der Netzwerkkarten abzufragen, dann hilft vielleicht dieser Code:

Code: Alles auswählen

EnableExplicit

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Container_0
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
EndEnumeration

;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 10, #PB_Font_Bold)


Procedure.s GetUserName()
  Define UserName.s
  Define Size.l
  
  Size = 32
  UserName = Space(Size)
  GetUserName_(@UserName, @Size)
  ProcedureReturn LCase(UserName)
EndProcedure

Procedure.s GetIPAddress()
  Define Ip
  Define Result.s
  
  ExamineIPAddresses()
  Ip = NextIPAddress()
  While Ip
    Result = IPString(Ip) + "|"
    Ip = NextIPAddress()
  Wend
  ProcedureReturn Result
EndProcedure

Procedure OpenWindow0(IPAddress.s)
  Define IPs.l
  
  IPs = CountString(IPAddress, "|")
  If IPs = 0
    IPs = 1
  EndIf
  IPAddress = ReplaceString(IPAddress, "|", #CR$ + #LF$)
  ExamineDesktops()
    If OpenWindow(#Window_0, DesktopWidth(0) - 234, 0, 234, 64 + 20 * IPs, "",  #PB_Window_BorderLess | #PB_Window_Invisible )
    If CreateGadgetList(WindowID(#Window_0))
      ContainerGadget(#Container_0, 2, 2, 230, 60 + 20 * IPs, #PB_Container_Flat)
      TextGadget(#Text_0, 10, 8, 50, 20, "User:")
      SetGadgetFont(#Text_0, FontID1)
      TextGadget(#Text_1, 10, 28, 50, 20, "Host:")
      SetGadgetFont(#Text_1, FontID1)
      TextGadget(#Text_2, 10, 48, 70, 20, "IP:")
      SetGadgetFont(#Text_2, FontID1)
      TextGadget(#Text_3, 60, 8, 160, 20, GetUserName())
      SetGadgetFont(#Text_3, FontID1)
      TextGadget(#Text_4, 60, 28, 160, 20, LCase(Hostname()))
      SetGadgetFont(#Text_4, FontID1)
      TextGadget(#Text_5, 60, 48, 160, 20 * IPs, IPAddress)
      SetGadgetFont(#Text_5, FontID1)
      CloseGadgetList()
    EndIf
  EndIf
EndProcedure

Define IPAddress.s
Define Event.l

InitNetwork()
IPAddress = GetIPAddress()
OpenWindow0(IPAddress)

;SetWindowPos_(WindowID(0), #HWND_TOPMOST, 0, 0, 0, 0,#SWP_NOMOVE | #SWP_NOSIZE) 
SetWindowLong_(WindowID(#Window_0), #GWL_EXSTYLE, #WS_EX_TOOLWINDOW)
HideWindow(#Window_0, 0)
;SetWindowLong_(WindowID(#Window_0), #GWL_EXSTYLE, $00080000 | #WS_EX_PALETTEWINDOW | #WS_EX_TRANSPARENT)
;SetWindowLong_(WindowID(#Window_0), #GWL_EXSTYLE, $00080000 | #WS_EX_TOOLWINDOW | #WS_EX_PALETTEWINDOW | #WS_EX_TRANSPARENT)
;SetLayeredWindowAttributes_(WindowID(#Window_0), 0, 200, 2)

Repeat
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Gruss
Frank
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

danke
sowas habe ich gesucht
Antworten