Rechner IP Adresse auslesen, wo?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Rechner IP Adresse auslesen, wo?

Beitrag von gerdra »

Hallo,
an welcher Adresse kann man mit einem selbstgeschriebenen PB-Programm die IP Adresse eines Rechners auslesen und wo und wie? Weiß das jemand?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

InitNetwork() 

ExamineIPAddresses() 
ip = NextIPAddress()

While ip 
  ip = NextIPAddress()
  Debug IPString(ip)
Wend 
Benutzeravatar
coder
Beiträge: 204
Registriert: 25.09.2005 17:53
Computerausstattung: Intel Core2Quad Q8200 @ 2.33GHz
ASUS P5Q3, 2GB DDR3-1066 RAM, ATi Raedeon HD 4850
Wohnort: Deutschland
Kontaktdaten:

Beitrag von coder »

Guck mal in die PB-Hilfe unter Network, da bigt es den Befehl ExamineIPAddresses().

Wenn man sich mit einer Sache beschäftig lernt man sie schneller :allright:
Windows 7 x64 | PureBasic 4.60 4.50 4.02
Ja verdammt, meine Eltern wohnen immer noch bei mir!
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

Hallo edel und coler,
ich danke euch für die Superantwort. Ja, habt recht, aber ich habe mit dem Bereich Network noch nichts gemacht, werde mich da mal einarbeiten.
Danke auch für den Beispielcode.
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

Nur noch eine andere Frage zu diesem Thema:

Wenn ich mehrere IP Adressen auslese, welche ist denn dann die "richtige" IP Adresse. Ich möchte mein Programm gegen Weitergabe durch Kopieren schützen und will damit unterbinden, dass das Programm auf anderen Rechnern läuft, also nur auf einem einzigen authorisierten Rechner.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> und will damit unterbinden, dass das Programm auf anderen Rechnern läuft, also nur auf einem einzigen authorisierten Rechner.
Dafür ist die IP aber denkbar ungeeignet. Entweder die Mac-Adresse des
Adapters oder vielleicht die Seriennummer des Systemlaufwerks

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

oder vielleicht einfach nur eine Kennwortabfrage einbauen...
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

Hi Ts-Soft,
also gut, muß ich akzeptieren, weil ich damit noch keine Erfahrung habe. Klar, die IP ist nicht unbedingt immer eineindeutig.
Wie lese ich denn mit PB die Seriennummer des Festplattenlaufwerkes
aus?
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

Hm PureBasic 4.0,
tja Kennwortabfrage, dann gibt der authorisierte Nutzer das ganze an andere Nutzer weiter incl. Kennwort, und letzterer wieder und....
Denke, da ist die Ermittlung der Seriennummer besser!?
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

EnableExplicit

Procedure.s GetDriveSerial(Drive.s)
  Protected lpVolumeNameBuffer.s, lpVolumeSerialNumber.l
  If Len(Drive) = 1 : Drive + ":\" : EndIf
  If Right(Drive, 1) <> "\" : Drive + "\" : EndIf
  lpVolumeNameBuffer.s = Space(#MAX_PATH +1)
  GetVolumeInformation_(@Drive, @lpVolumeNameBuffer, #MAX_PATH +1, @lpVolumeSerialNumber, 0,0,0,0)
  ProcedureReturn Hex(PeekW(@lpVolumeSerialNumber + 2) & $FFFF) + "-" + Hex(PeekW(@lpVolumeSerialNumber) & $FFFF)
EndProcedure

Debug GetDriveSerial("C:")
Gruß
Thomas

// Nachtrag: Das Laufwerk des Programmes wäre wohl besser, weil
C: muß nicht existieren:

Code: Alles auswählen

Debug GetDriveSerial(Left(ProgramFilename(),2))
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten