|
|
1.1 root 1: #include <sys/inet/in.h>
2:
3: /*
4: * Convert network-format internet address
5: * to base 256 d.d.d.d representation.
6: */
7: char *
8: in_ntoa(in)
9: in_addr in;
10: {
11: static char b[18];
12: register char *p;
13:
14: p = (char *)∈
15: #define UC(b) (((int)b)&0xff)
16: sprintf(b, "%d.%d.%d.%d", UC(p[3]), UC(p[2]), UC(p[1]), UC(p[0]));
17: return (b);
18: }
19:
20: /*
21: * Convert base 256 d.d.d.d representation
22: * to network-format internet address.
23: */
24: in_addr
25: in_aton(s)
26: char *s;
27: {
28: int x;
29: char *p, c4[4];
30:
31: for(x = 0; x < 4; x++)
32: c4[x] = 0;
33: p = s;
34: x = 0;
35: while(*p){
36: if(p == s || *p == '.'){
37: if(*p == '.')
38: p++;
39: x <<= 8;
40: x |= atoi(p);
41: }
42: p++;
43: }
44: if((x & 0xffff0000) == 0){
45: /* probably like 126.1 */
46: x = ((x & 0xff00) << 16) | (x & 0xff);
47: }
48: return(x);
49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.