TTL bei Sockets einstellen in C
-
IF(Das Klappt)
{ Du bist ein Gott !!! }Leider noch nicht
Meine neue eingabe im Quellcode:
int value = 128; //this should be something you want to set for TTL
setsockopt (s, SOL_IP, IP_TTL, value, sizeof(value));Ausgabe des Compilers
Programm.c(66): error #2048: Undeclared identifier 'SOL_IP'.
Programm.c(66): error #2140: Type error in argument 4 to 'setsockopt'; expected 'const char *' but found 'int'.
-
Probier mal SOL_SOCKET und &value. (&value muss dann gecastet werden, ich frage mich zwar wie das funktionieren soll, aber in dem verlinkten Thread hats ja offensichtlich geholfen..)
-
Danke das Löst schon mal das eine Prob.
Frag mich aber wieso, da auch auf dieser Homepage das eig anders aussieht:
http://www.cems.uwe.ac.uk/~irjohnso/linsock/Book Notes/Appendices/Data Tables/IP-Level Socket Options.htmlDieses ist noch über
Programm.c(95): error #2140: Type error in argument 4 to 'setsockopt'; expected 'const char *' but found 'int *'.
-
Wie gesagt, caste einfach.
setsockopt(s, SOL_SOCKET, IP_TTL, (const char*)&value, sizeof(value));Aber ob das dann auch funktioniert

Also ich glaube wie gesagt eigentlich immer noch, dass das mit TCP Sockets nicht geht. Da wirste wohl etwas mehr Arbeit reinstecken müssen.
-
mit casten gibts zwar keine Fehler, dafür bringt das nix.
Wenn ich nen Verinbung zu Google an Port 80 mit nem TTL von 1 aufbauen kann obwohl ich in nem Uni Netz bin dann passt was net.
-
Homie schrieb:
mit casten gibts zwar keine Fehler, dafür bringt das nix.
Wenn ich nen Verinbung zu Google an Port 80 mit nem TTL von 1 aufbauen kann obwohl ich in nem Uni Netz bin dann passt was net.
Wie gesagt, du brauchst vermutlich Raw Sockets.
-
SetIpTTL
-
Ihr habt doch alle keine Ahnung!!!
-
http://msdn.microsoft.com/en-us/library/ms738586(v=vs.85).aspx
IPPROTO_IP Socket Options
IP_TTLChanges the default value set by the TCP/IP service provider in the TTL field of the IP header in outgoing datagrams. IP_TTL support is not required; to check whether IP_TTL is supported, use getsockopt to get current options. If getsockopt fails, IP_TTL is not supported.
-
cooky451 schrieb:
Wie gesagt, caste einfach.
setsockopt(s, SOL_SOCKET, IP_TTL, (const char*)&value, sizeof(value));Aber ob das dann auch funktioniert

Also ich glaube wie gesagt eigentlich immer noch, dass das mit TCP Sockets nicht geht. Da wirste wohl etwas mehr Arbeit reinstecken müssen.
So:
setsockopt(s, IPPROTO_IP, IP_TTL, (const char*)&value, sizeof(value));Aber eins oben kannst du sehen was MS noch dazu schreibt.
-
[quote="-lowbyte-"]
cooky451 schrieb:
So:
setsockopt(s, IPPROTO_IP, IP_TTL, (const char*)&value, sizeof(value));Danke, der klappt.
Und schon wieder bin ich beim nächsten Prob. Könntest du mir die Liste zubekommen lassen in der du das nachschaust ? Im jetzigen Fall muss ich die Time-outs editieren da i.was um 20 sek viel zu lang ist
Danke homie
-