Sending UDP Raw socket
Posted on
16th Feb 2014 07:03 pm by
admin
I truly need help on this. I am trying to write a test program that simulate a network environment that have 5 clients and 1 server. To do so, I need to be able to edit IP header to change it's source address and various other values in the header. To change it, I need to use socket raw and IP_HRINCL socket option.
However, it doesn't work during the send with error 10049, "Address not available" from WSAGetLastError(). I am wondering how would I do so, and can I please look at a simple example on how to change your IP header and send it. By the way, I am using winsock with VC++, and my os is XP. I know there are some issues regarding XP's compatibility with Raw socket. In addition, if winsock is not a viable option, is there anyway for me to write in lower socket?
Did you know?Explore Trending and Topic pages for more stories like this.
Here's my code
Code:
#include
#include
#include
using namespace std;
int initialize();
void main()
{
initialize();
SOCKET sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP);
int error;
char on = 1;
setsockopt(sock,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));
if(sock == INVALID_SOCKET)
cout << "Crap raw socket " << endl;
/* Header data */
unsigned char header[32] = {0x45,0x00,0x00,0x20,0x01,0xf1,0x00,0x00,0x05,0x11,0x9c,0x0a,0x05,0x3a,0x38,0x02,0xe0,
0x02,0xfa,0x93};
memset(header+20,0,12);
SOCKADDR_IN sock_add;
sock_add.sin_family = AF_INET;
sock_add.sin_port = htons(1542);
sock_add.sin_addr.s_addr = inet_addr("192.168.1.1");
error = sendto(sock,(char*)header,32,0,(LPSOCKADDR)&sock_add,sizeof(SOCKADDR_IN));
}
int initialize()
{
int t;
/* Before any Winsock function to work, we need to call to wsock.dll to initialize those
functions */
WSADATA wsa_data;
t = WSAStartup(MAKEWORD(1,1), &wsa_data);
if(t != 0)
return -1;
else
return 0;
}
Your Answer:
Login to answer
118
39
Other forums
i need help with php header and footer
I have designed a header and footer for my site and they seem to be ok when they are running individ
Error when call dll from oracle
Hi all, please help me!
I have dll write C language, I want call it from oracle procedur
Why will this program not run if the variables are not global?
Hey guys I have a kind of perplexing situation that is probably simple, but I can't seem to understa
Schedule editor
Hi,
I have a question related to Schedule editor.
If we schedule a BLS for every 30
php code generators
All
Whilst enjoying learning a new language i have come accross a number of free code generat
session variable problem
Session variable is not working in Fire fox i am getting null value but it is working fine in IE.
Login Script Issues
I am using a script I got from http://phpsense.com/php/php-login-script.html in order to allow peopl
Open/Close Links in Php
Hello, Hoping someone can inform me how I can get PHP to automatically open a set of links in a new
Php mysql - select?
Hi i have this code:
Code: $iteminfo = mysql_query("SELECT desc FROM wc_items WHERE itemid =
Printer configuration
Hi All,
Suppose one of the user deleted the printer settings unfortunatly ,then what is the pro