1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <windows.h>
#include <stdio.h>
 
#pragma comment(lib, "Ws2_32.lib")
 
 
 
 
int main()
{
  int lRetVal = 0;
  char *lRemoteIPStr = "192.168.1.1";
  unsigned char lIPArr[4];
  unsigned long lIPLongHost = 0;
  unsigned long lIPLongNet = 0;
 
 
 
  // From String to 4 byte char array.
  sscanf((char *) lRemoteIPStr, "%d.%d.%d.%d", &lIPArr[0], &lIPArr[1], &lIPArr[2], &lIPArr[3]);
  (lIPArr[0] | lIPArr[1] | lIPArr[2] | lIPArr[3]) < 255;
 
 
 
  // Copy the 4 byte char array to a 4 byte unsigned long, host order
  CopyMemory(&lIPLongHost, lIPArr, 4);
 
 
  // Convert the  unsigned long (host order) variable to network order
  lIPLongNet = htonl(lIPLongHost);
 
 
  printf("%s -> %d.%.d.%d.%d -> %lu -> %lu \n", lRemoteIPStr, lIPArr[0], lIPArr[1], lIPArr[2], lIPArr[3], 
	      lIPLongHost, lIPLongNet);
 
 
 
  return(lRetVal);
}