⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 In this article, I will explain how to create UDP packets and then send them to a remote server thro
💻 CPP
字号:
#include "NetworkStuff.h"
#include "RawPacket.h"
	
pcap_if_t* ChosenDevice;

int main()
{
	cout << "Enter the number of your device (example: 2)" << endl;
	ShowDeviceList();
	int chosen;
	cin >> chosen;

	int i = 1;char Error[PCAP_ERRBUF_SIZE];
	pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&ChosenDevice,Error);
	for(pcap_if_t* CurrentDevice = ChosenDevice;CurrentDevice != NULL;CurrentDevice = CurrentDevice->next)
	{
		if(i == chosen)
		{
			ChosenDevice = CurrentDevice;
			break;
		}
		i++;
	}

	DeviceInfo di;
	di = GetAdapterInfo(ChosenDevice);
	if(di.Exists == false)
	{
		cout << "Invalid Selection (Try another device)\n";
		return 0;
	}

	cout << "You chose: " << ChosenDevice->name << endl;

	char SourceIP[16];
	char SourcePort[6];
	char SourceMAC[19];
	
	char DestinationIP[16];
	char DestinationPort[6];

	char DataString[2048];

	cout << "Enter source IP (or -1 for real)\n";
	cin >> SourceIP;
	cout << "Enter source port (0-65535)\n";
	cin >> SourcePort;
	cout << "Enter source MAC (or -1 for real) \n";
	cin >> SourceMAC;
	cout << "Enter destination IP\n";
	cin >> DestinationIP;
	cout << "Enter destination port(0-65535)\n";
	cin >> DestinationPort;
	cout << "Enter data string\n";
	cin >> DataString;

	RawPacket RP;
	if(strcmp(SourceMAC,"-1")==0)
	{
		if(strcmp(SourceIP,"-1")==0)
		{
			RP.CreatePacket(di.PhysicalAddress,di.GatewayPhysicalAddress,di.IP,inet_addr(DestinationIP),atoi(SourcePort),atoi(DestinationPort),(UCHAR*)DataString,strlen(DataString));
			RP.SendPacket(ChosenDevice);

			return 0;
		}
		RP.CreatePacket(di.PhysicalAddress,di.GatewayPhysicalAddress,inet_addr(SourceIP),inet_addr(DestinationIP),atoi(SourcePort),atoi(DestinationPort),(UCHAR*)DataString,strlen(DataString));
		RP.SendPacket(ChosenDevice);
		return 0;
	}
	if(strcmp(SourceIP,"-1")==0)
	{
		RP.CreatePacket(MACStringToBytes(SourceMAC),di.GatewayPhysicalAddress,di.IP,inet_addr(DestinationIP),atoi(SourcePort),atoi(DestinationPort),(UCHAR*)DataString,strlen(DataString));
		RP.SendPacket(ChosenDevice);
		return 0;
	}
	RP.CreatePacket(MACStringToBytes(SourceMAC),di.GatewayPhysicalAddress,inet_addr(SourceIP),inet_addr(DestinationIP),atoi(SourcePort),atoi(DestinationPort),(UCHAR*)DataString,strlen(DataString));
	RP.SendPacket(ChosenDevice);

}


	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -