<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sockets]]></title><description><![CDATA[<p>Sers,<br />
Ich versuche hier eine Anfrage an meinen PC mit gefälschtem IP-Header zu machen.<br />
Ich hab das von einem Quelltext für Linux. Hab es auch Linux richtig compiliert bekommen (schon ne Weile her...)</p>
<p>Für Windows bekomm ich es auch compiliert aber es läuft nicht wie ich will.<br />
Hier der Code:</p>
<pre><code class="language-cpp">// includes
#include &lt;winsock2.h&gt;
#include &lt;ws2tcpip.h&gt;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

// header
struct iphdr {
    unsigned int    len:4;
    unsigned int    ver:4;
    unsigned char     tos;
    unsigned short     total_len;
    unsigned short     ident;
    unsigned short     frag_and_flags;
    unsigned char     ttl;
    unsigned char     proto;
    unsigned short     checksum;
    unsigned int     sourceIP;
    unsigned int     destIP;
};

//Header TCP
struct tcphdr
{
   unsigned short sport;
   unsigned short dport;
   unsigned int   seqnum;
   unsigned int   acknum;
   unsigned char  DataOffset;
   unsigned char  Flags;
   unsigned short Windows;
   unsigned short Checksum;
   unsigned short UrgPointer;
};

// main entry
int main(int argc, char *argv[])
{
    // private
    WSADATA             wsa;    
    int                 s;
    unsigned int        on=1;
    struct iphdr        *ip;
    struct tcphdr       *tcp;
    struct sockaddr_in  to;
    struct in_addr      addr;
    char                buffer[1024];

    // setup winsock
    WSAStartup(MAKEWORD(2,2), &amp;wsa);

    // create socket
    if((s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP))==-1){
        printf(&quot;socket() error\n&quot;);
        return 0;
    }

    // set some options
    if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char*)&amp;on, sizeof(on)) == -1){
        printf(&quot;setsockopt() error\n&quot;);
        return -1;
    }

    // create header
    ip = (struct iphdr*) buffer;
    tcp = (struct tcphdr*) (buffer + sizeof(struct iphdr));

    memset(ip, 0, sizeof(struct iphdr));
    ip-&gt;ver      = 4;
    ip-&gt;len      = 5;
    ip-&gt;total_len    = htons(sizeof(struct iphdr) + sizeof(struct tcphdr));
    ip-&gt;ident        = 2;
    ip-&gt;ttl          = 255;
    ip-&gt;proto        = IPPROTO_TCP;
    ip-&gt;sourceIP = inet_addr(&quot;192.168.1.11&quot;);
    ip-&gt;destIP       = inet_addr(&quot;192.168.1.12&quot;);

    memset(tcp, 0, sizeof(struct tcphdr));
    tcp-&gt;sport = htons(1024);
    tcp-&gt;dport = htons(54321);
    tcp-&gt;seqnum  = 2;
    tcp-&gt;DataOffset  = 5;
    tcp-&gt;acknum  = 1;
    tcp-&gt;Windows = htons(65535);

    to.sin_addr.S_un.S_addr  = ip-&gt;destIP;
    to.sin_family = AF_INET;
    to.sin_port = tcp-&gt;dport;

    printf(&quot;Ziel: %s:%i\n&quot;, inet_ntoa(to.sin_addr), ntohs(tcp-&gt;dport ));
    addr.s_addr = ip-&gt;sourceIP ;
    printf(&quot;Quelle: %s:%i\n&quot;, inet_ntoa(addr), ntohs(tcp-&gt;sport ));

    if(sendto(s, buffer, ntohs(ip-&gt;total_len ), 0, (sockaddr*)&amp;to, sizeof(to))==-1){
        perror(&quot;sendto() error&quot;);
    }

    // quit
    getchar();
    return 0;
}
</code></pre>
<p>Bei sendto() bekomm ich diesen Fehler:</p>
<pre><code>sendto() error: no error
</code></pre>
<p>Mmhh.<br />
Naja vielleicht kann mir ja jemand helfen. Vielleicht auch jemand aus der Linuxecke...</p>
<p>cu para<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/16262/sockets</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 06:54:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/16262.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Feb 2003 19:23:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sockets on Sun, 09 Feb 2003 19:23:00 GMT]]></title><description><![CDATA[<p>Sers,<br />
Ich versuche hier eine Anfrage an meinen PC mit gefälschtem IP-Header zu machen.<br />
Ich hab das von einem Quelltext für Linux. Hab es auch Linux richtig compiliert bekommen (schon ne Weile her...)</p>
<p>Für Windows bekomm ich es auch compiliert aber es läuft nicht wie ich will.<br />
Hier der Code:</p>
<pre><code class="language-cpp">// includes
#include &lt;winsock2.h&gt;
#include &lt;ws2tcpip.h&gt;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

// header
struct iphdr {
    unsigned int    len:4;
    unsigned int    ver:4;
    unsigned char     tos;
    unsigned short     total_len;
    unsigned short     ident;
    unsigned short     frag_and_flags;
    unsigned char     ttl;
    unsigned char     proto;
    unsigned short     checksum;
    unsigned int     sourceIP;
    unsigned int     destIP;
};

//Header TCP
struct tcphdr
{
   unsigned short sport;
   unsigned short dport;
   unsigned int   seqnum;
   unsigned int   acknum;
   unsigned char  DataOffset;
   unsigned char  Flags;
   unsigned short Windows;
   unsigned short Checksum;
   unsigned short UrgPointer;
};

// main entry
int main(int argc, char *argv[])
{
    // private
    WSADATA             wsa;    
    int                 s;
    unsigned int        on=1;
    struct iphdr        *ip;
    struct tcphdr       *tcp;
    struct sockaddr_in  to;
    struct in_addr      addr;
    char                buffer[1024];

    // setup winsock
    WSAStartup(MAKEWORD(2,2), &amp;wsa);

    // create socket
    if((s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP))==-1){
        printf(&quot;socket() error\n&quot;);
        return 0;
    }

    // set some options
    if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char*)&amp;on, sizeof(on)) == -1){
        printf(&quot;setsockopt() error\n&quot;);
        return -1;
    }

    // create header
    ip = (struct iphdr*) buffer;
    tcp = (struct tcphdr*) (buffer + sizeof(struct iphdr));

    memset(ip, 0, sizeof(struct iphdr));
    ip-&gt;ver      = 4;
    ip-&gt;len      = 5;
    ip-&gt;total_len    = htons(sizeof(struct iphdr) + sizeof(struct tcphdr));
    ip-&gt;ident        = 2;
    ip-&gt;ttl          = 255;
    ip-&gt;proto        = IPPROTO_TCP;
    ip-&gt;sourceIP = inet_addr(&quot;192.168.1.11&quot;);
    ip-&gt;destIP       = inet_addr(&quot;192.168.1.12&quot;);

    memset(tcp, 0, sizeof(struct tcphdr));
    tcp-&gt;sport = htons(1024);
    tcp-&gt;dport = htons(54321);
    tcp-&gt;seqnum  = 2;
    tcp-&gt;DataOffset  = 5;
    tcp-&gt;acknum  = 1;
    tcp-&gt;Windows = htons(65535);

    to.sin_addr.S_un.S_addr  = ip-&gt;destIP;
    to.sin_family = AF_INET;
    to.sin_port = tcp-&gt;dport;

    printf(&quot;Ziel: %s:%i\n&quot;, inet_ntoa(to.sin_addr), ntohs(tcp-&gt;dport ));
    addr.s_addr = ip-&gt;sourceIP ;
    printf(&quot;Quelle: %s:%i\n&quot;, inet_ntoa(addr), ntohs(tcp-&gt;sport ));

    if(sendto(s, buffer, ntohs(ip-&gt;total_len ), 0, (sockaddr*)&amp;to, sizeof(to))==-1){
        perror(&quot;sendto() error&quot;);
    }

    // quit
    getchar();
    return 0;
}
</code></pre>
<p>Bei sendto() bekomm ich diesen Fehler:</p>
<pre><code>sendto() error: no error
</code></pre>
<p>Mmhh.<br />
Naja vielleicht kann mir ja jemand helfen. Vielleicht auch jemand aus der Linuxecke...</p>
<p>cu para<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/89642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/89642</guid><dc:creator><![CDATA[brain-death]]></dc:creator><pubDate>Sun, 09 Feb 2003 19:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Mon, 08 Mar 2004 16:52:04 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ich bekomme diesen Code gar nicht erst kompiliert immer diese errors, hat jemand ne ahnung?</p>
<p><a href="http://home.tiscalinet.ch/teuffenthal/Different/das.bmp" rel="nofollow">http://home.tiscalinet.ch/teuffenthal/Different/das.bmp</a></p>
<p>sorry das ich immer so komische sachen frage, aber bin neu in C, vorher nur vb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/475906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/475906</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Mon, 08 Mar 2004 16:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Mon, 08 Mar 2004 21:11:45 GMT]]></title><description><![CDATA[<p>Versuch's mal mit SOCKADDR* (also in Großbuchstaben) - evtl. ist auch dein PSDK zu alt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Und poste doch bitte das nächste mal direkt die Fehlermeldungen und nicht als Bild (und schon gar nicht als BMP <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/476138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/476138</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 08 Mar 2004 21:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Mon, 08 Mar 2004 21:28:45 GMT]]></title><description><![CDATA[<p>Hatte ein bisschen stress beim uploaden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /><br />
werde es morgen testen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/476151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/476151</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Mon, 08 Mar 2004 21:28:45 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Tue, 09 Mar 2004 18:15:59 GMT]]></title><description><![CDATA[<p>Hi habe ihn jetzt compiliert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> aber bekomme beim ausführen immer dieser error:<br />
<strong>setsockopt&lt;&gt; error</strong></p>
<p>hat jemand ne idee könnte es an win98 liegen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/476771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/476771</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Tue, 09 Mar 2004 18:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Wed, 10 Mar 2004 01:46:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>die Kombination IPPROTO_IP/IP_HDRINCL wird für Win98 nicht unterstützt, siehe hier</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/ipproto_ip_socket_options.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/ipproto_ip_socket_options.asp</a></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/476989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/476989</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Wed, 10 Mar 2004 01:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Wed, 10 Mar 2004 17:37:46 GMT]]></title><description><![CDATA[<p>hi danke gibt es irgendein anderer weg das gleichwohl zum laufen zu bringen, oder ein patch oder so etwas für win98? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/477745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477745</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Wed, 10 Mar 2004 17:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Wed, 10 Mar 2004 18:06:16 GMT]]></title><description><![CDATA[<p>mit <a href="http://winpcap.polito.it/" rel="nofollow">http://winpcap.polito.it/</a> kannst du auch unter win9x pakete komplett selbst bauen und versenden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477794</guid><dc:creator><![CDATA[0rp]]></dc:creator><pubDate>Wed, 10 Mar 2004 18:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Wed, 10 Mar 2004 18:20:55 GMT]]></title><description><![CDATA[<p>ich habe es installiert, aber es funzt leider immer noch nicht! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/477820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477820</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Wed, 10 Mar 2004 18:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets on Wed, 10 Mar 2004 18:29:38 GMT]]></title><description><![CDATA[<p>sry bin dumm, muss natürlich etwas komplett neues schreiben mit winpcap, aber ich fand in den docs gerade nicht was flags senden kann, hat noch jemand ideen?</p>
<p>gb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477831</guid><dc:creator><![CDATA[C--]]></dc:creator><pubDate>Wed, 10 Mar 2004 18:29:38 GMT</pubDate></item></channel></rss>