无网络连接发送数据包(无线适配器)

时间:2014-09-02 19:38:53

标签: c# networking wifi wireless

我必须将带有wifi适配器的数据包发送到另一台计算机而不连接任何网络,目标是Windows 7及更高版本。首先,ad-hoc(据我所知)不符合我的需求,因为它需要连接。

我有两个想法:

  1. 创建类似于识别网络的广播包的内容。这可以在无线网卡上使用

  2. 发送虚假但有效的数据包,但不发送 需要一个特定的IP / MAC地址(例如,它们可以广播)。

  3. 我使用的是:带有Win7 PC的C#和用于测试程序的Win7笔记本电脑。 SharpPcap发送数据包。 Wireshark检查他们是否到达。

    我尝试了第二种方法:

    static void Main(string[] args)
    {
        WinPcapDeviceList devs = WinPcapDeviceList.Instance;
        foreach (WinPcapDevice wdev in devs)
        {
            System.Console.Write("Device: ");
            System.Console.WriteLine(wdev.Description);
            foreach (var addr in wdev.Addresses)
                System.Console.WriteLine(addr.Addr);
            System.Console.WriteLine("--------------");
        }
    
        System.Console.Write("Select device: #");
        int selected = int.Parse(System.Console.ReadLine());
        var dev = devs[selected]; //yes, no checking for oob...
        dev.Open();
    
        while (true)
        {
            byte[] physBroad = new byte[] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
            EthernetPacket etherPacket = new EthernetPacket(
                dev.MacAddress,
                new PhysicalAddress(physBroad),
                EthernetPacketType.IpV4);
    
            IPv4Packet ip4Packet = new IPv4Packet(
                new IPAddress(0),
                IPAddress.Broadcast);
    
            ip4Packet.Protocol = IPProtocolType.UDP;
    
            etherPacket.PayloadPacket = ip4Packet;
    
            UdpPacket udpPacket = new UdpPacket(
                80, //tried with different port setups
                80);
    
            udpPacket.PayloadData = Encoding.UTF8.GetBytes("test packet");
            ip4Packet.PayloadPacket = udpPacket;
    
            dev.SendPacket(etherPacket);
        }
    }
    

    如果没有连接到同一网络,它们将被丢弃(不会到达Wireshark)。我只能看到它们在同一网络上的数据包。

    对于第一个,我了解IEEE 802.11,但我找不到有关如何制作和发送这些数据包的任何信息。没有像AirPcap这样的专用硬件可以做到这一点吗?如果没有必要,我也想避免写一个驱动程序。

    PS: 我的PC上有一块Edimax无线LAN卡,笔记本电脑上有一块Mediatek MT763E 802.11bgn Wifi-Adapter。我在两者上都安装了相同版本的Wireshark,但我无法打开监控模式,也无法将链路层类型设置为IEEE-802.11,只能设置为以太网和DOCSIS类型。

1 个答案:

答案 0 :(得分:3)

将您的WiFi SSID更改为以下消息: - )

enter image description here

或者这个:

enter image description here