2012-05-11 17 views
8

मैं सी # का उपयोग कर आईपी पैकेट भेजने की कोशिश कर रहा हूं।मैं यह आईपी पैकेट क्यों नहीं भेज सकता?

destAddress = IPAddress.Parse("192.168.0.198"), 
    destPort = 80; 

    // Create a raw socket to send this packet 
    rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); 

    // Bind the socket to the interface specified 
    IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.0.140"),0); 
    rawSocket.Bind(iep); 

    // Set the HeaderIncluded option since we include the IP header 
    rawSocket.SetSocketOption(socketLevel, SocketOptionName.HeaderIncluded, 1); 

    // Send the packet! 
    int rc = rawSocket.SendTo(builtPacket, new IPEndPoint(destAddress, destPort)); 
    Console.WriteLine("sent {0} bytes to {1}", rc, destAddress.ToString()); 

बिल्टपैकेट की सामग्री नीचे दिखाया गया है। यह एक आईपी पैकेट है जिसमें एक टीसीपी एसवाईएन पैकेट होता है (यही वह है जो मुझे लगता है कि मैंने वैसे भी बनाया है)।

45 00 00 28 00 00 00 00 02 06 36 6E C0 ए 8 00 8C

C0 ए 8 00 सी 6 14 1E 00 50 00 00 00 00 00 00 00 00

05 02 एफएफ एफएफ E6 4F 00 00

उत्पादन होता है:

sent 40 bytes to 192.168.0.198 

समस्या मैं Wireshark का पता लगाने में कुछ भी नहीं दिख रहा है। ऐसा लगता है कि वायरसहार्क को देखने के लिए डेटा काफी ढेर नहीं हो रहा है? यदि मैं 1 9 2.168.0.1 9 8 से कनेक्ट करने के लिए ब्राउज़र का उपयोग करता हूं, तो वायरशर्क सभी पैकेट दिखाता है, लेकिन उपरोक्त कोड और डेटा का उपयोग करके पैकेट भेजने का प्रयास करते समय कुछ भी नहीं दिखाता है।

मेरे config:

  • मैं तो यह एक अनुमतियाँ समस्या नहीं है व्यवस्थापक के रूप में चल रहा हूँ।

  • Windows7 (नहीं एक वी एम में चल रहे)

  • वायरलेस कनेक्शन केवल

क्या मैं गलत कर रहा हूँ (आईपी config 192.168.0.140 के रूप में अपनी आईपी रिपोर्ट)?

मुझे यकीन है कि ओकम का रेजर यहां लागू होता है, लेकिन मैं इसे घंटों तक देख रहा हूं और यह पता नहीं लगा सकता कि क्या गलत है।

+1

क्या आपके पास वायरसहार्क में कोई फ़िल्टर सेट है? – Default

+1

क्या रिसीवर पैकेज प्राप्त करता है? –

+0

मैंने "होस्ट 192.168.0.1 9 8" के फ़िल्टर के साथ प्रयास किया है और कोई फ़िल्टर नहीं है, लेकिन मेरे ऐप से कुछ भी नहीं मिला है। – TonyM

उत्तर

3

This question, backed up by MSDN, दावा करता है कि विंडोज़ अब नहीं (एक्सपी एसपी 2 से 7) कच्चे सॉकेट का उपयोग कर टीसीपी डेटा के संचरण की अनुमति देता है।

+0

मैं कोई भी टीसीपी डेटा नहीं भेज रहा हूं, बस एक टीसीपी एसईएन पैकेट बिना पेलोड के। – TonyM

+3

आईएमएचओ टीसीपी टीसीपी है जो सामग्री से कोई फर्क नहीं पड़ता। – rekire

+0

@rekire यह मेरा अनुमान भी होगा। – shambulator

0

मेरा अनुमान है कि या तो वायरशर्क सही नेटवर्क इंटरफ़ेस को नहीं देख रहा है, या गंतव्य आईपी पता किसी भी तरह स्थानीय मशीन पर हल हो जाता है, इस मामले में यह ओएस के अंदर घुमाएगा और शार्क के लिए अदृश्य हो जाएगा।

+1

वायर्सहार्क्स का कहना है कि यह 1 9 2.168.040 को देख रहा है। यदि मैं एक ब्राउज़र यूआरएल में गंतव्य आईपी पता डालता हूं तो यह उससे जुड़ता है और वायरशर्क पर दिखाई देता है। – TonyM

संबंधित मुद्दे