Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 20.08.13 13:21 
Die WindowsAPI (IcmpSendEcho und Konsorten) sollte das Problem nicht haben.
Christian213
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 20.08.13 14:55 
user profile iconChristian213 hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 20.08.13 15:46 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconChristian213 hat folgendes geschrieben Zum zitierten Posting springen:
Hier findet man übrigens einen Beispielquelltext mit IcmpSendEcho.
Der braucht aber auch Adminrechte.


Gerade äquivalentes (Windows7 mit C#) ausprobiert. Und es ging ohne Admin Rechte.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.08.13 16:48 
Moin!

Einen IcmpEcho-API-Wrapper haben wir hier auch :arrow: 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 :lol:). :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Christian213
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Mi 21.08.13 08:37 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconChristian213 hat folgendes geschrieben Zum zitierten Posting springen:
Hier findet man übrigens einen Beispielquelltext mit IcmpSendEcho.
Der braucht aber auch Adminrechte.


Gerade äquivalentes (Windows7 mit C#) ausprobiert. Und es ging ohne Admin Rechte.

Unter Lazarus kann ich auch IcmpSendEcho mit einem eingeschränkten Benutzer aufrufen?!
Wenn, dann muss das wohl ein RTL-Problem bei Delphi sein.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 21.08.13 23:58 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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."