|
|
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 int i;
13:
14: i = *(int *)∈
15: #define UC(b) (((int)b)&0xff)
16: sprintf(b, "%d.%d.%d.%d", UC(i>>24), UC(i>>16), UC(i>>8), UC(i));
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, dots=0;
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: dots++;
39: p++;
40: }
41: x <<= 8;
42: x |= atoi(p);
43: }
44: p++;
45: }
46: if((x & 0xffff0000) == 0){
47: /* probably class A net.host */
48: x = ((x & 0xff00) << 16) | (x & 0xff);
49: }
50: if((x & 0xff000000) == 0){
51: /* probably class B net.net.host */
52: x = ((x & 0xffff00) << 8) | (x & 0xff);
53: }
54: return(x);
55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.