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
40
41
42
43
44
45
46
| #include <stdio.h>
void print_ip(unsigned char oct[]);
void print_ip_hex(unsigned char oct[]);
int ip_from_str(unsigned char oct[], const char *s);
int main(void)
{
unsigned char ipoct[4], mskoct[4];
ip_from_str(ipoct, "192.168.1.1");
ip_from_str(mskoct, "255.255.255.0");
printf("ip: ");
print_ip(ipoct);
printf("msk: ");
print_ip(mskoct);
printf("ip hex: ");
print_ip_hex(ipoct);
return 0;
}
void print_ip(unsigned char oct[])
{
printf("%d.%d.%d.%d\n", oct[0], oct[1], oct[2], oct[3]);
}
void print_ip_hex(unsigned char oct[])
{
printf("%02X.%02X.%02X.%02X\n", oct[0], oct[1], oct[2], oct[3]);
}
int ip_from_str(unsigned char oct[], const char *s)
{
int tmp[4], retval;
retval = sscanf(s, "%d.%d.%d.%d",
tmp, tmp + 1, tmp + 2, tmp + 3);
oct[0] = tmp[0];
oct[1] = tmp[1];
oct[2] = tmp[2];
oct[3] = tmp[3];
return retval == 4;
} |