Autor |
Beitrag |
Aya
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Di 20.08.13 13:14
Hi,
ich möchte gern einen Server pingen und dafür aber nicht auf den commandline befehl zurückgreifen, sondern das ganze in meinem Programm implementieren.
Das ist soweit kein Problem, gibt ja genug beispiele für RawSocket Pings im Internet, allerdings braucht man für alle beispiele Adminrechte...
Die Zeile:
Delphi-Quelltext 1:
| socket(AF_INET, SOCK_RAW, IPPROTO_ICMP) |
funktioniert leider nur bei entsprechenden Admin Rechten, wird aber von allen Beispielen die ich gefunden habe benutzt - gibt es da eine Möglichkeit das auch als normaler User zu nutzen?
Danke,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Di 20.08.13 13:21
Die WindowsAPI (IcmpSendEcho und Konsorten) sollte das Problem nicht haben.
|
|
Christian213
Beiträge: 66
Erhaltene Danke: 3
Win XP, Win 7 64Bit
Lazarus 1.0.10
|
Verfasst: Di 20.08.13 14:05
Dem kann ich mich nur anschließen. Ich würde grundsätzlich auf raw sockets verzichten, denn dies erfordert nicht nur Adminrechte, sondern man riskiert auch, dass das eigene Programm evtl. von einem Firewall oder Virenscanner als Trojaner fehl erkannt wird.
Ich wage mal zu behaupten, dass man für seriöse Programmierung eigentlich nie in die Verlegenheit kommen sollte raw sockets zu benötigen.
Hier findet man übrigens einen Beispielquelltext mit IcmpSendEcho.
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 20.08.13 14:55
Christian213 hat folgendes geschrieben : | Hier findet man übrigens einen Beispielquelltext mit IcmpSendEcho. |
Der braucht aber auch Adminrechte.
Warum Microsoft das so gemacht hat, weiß ich nicht. Es ist aber so, dass die Pingroutinen (Icmp...), die für Anwendungen zur Verfügung stehen, Adminrechte erfordern. Das eigene Ping-Tool nutzt die aber nicht, nur deshalb funktioniert es ohne Adminrechte...
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Di 20.08.13 15:46
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 20.08.13 16:48
Moin!
Einen IcmpEcho-API-Wrapper haben wir hier auch www.entwickler-ecke....iewtopic.php?t=53259
Hier ist noch ein bischen mehr über das Thema zusammengefasst (notabene die Ausführungen zu den Einschränkungen, die seit XPsp3 angezogen wurden; gab wohl zuviel Schmutzware, die das missbraucht hat ).
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Christian213
Beiträge: 66
Erhaltene Danke: 3
Win XP, Win 7 64Bit
Lazarus 1.0.10
|
Verfasst: Mi 21.08.13 08:37
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 21.08.13 08:57
Es geht auch bei mir, aber nur auf einem Rechner, auf einem Firmenrechner nur als Admin. Man kann das also offenbar einstellen.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 21.08.13 23:58
jaenicke hat folgendes geschrieben : | Es geht auch bei mir, aber nur auf einem Rechner, auf einem Firmenrechner nur als Admin. Man kann das also offenbar einstellen. |
Die spannende Frage wäre also, wie heißt die Gruppenrichtlinie dazu... in den IP-Sicherheitsrichtlinien ist sowas drin, aber da als Paketfilter. Keine Ahnung wo die API-Einstellungen sind.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|