12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <stdlib.h>
- #include <netinet/ether.h>
- #include <stdio.h>
- struct ether_addr *ether_aton_r (const char *x, struct ether_addr *p_a)
- {
- struct ether_addr a;
- char *y;
- for (int ii = 0; ii < 6; ii++) {
- unsigned long int n;
- if (ii != 0) {
- if (x[0] != ':') return 0; /* bad format */
- else x++;
- }
- n = strtoul (x, &y, 16);
- x = y;
- if (n > 0xFF) return 0; /* bad byte */
- a.ether_addr_octet[ii] = n;
- }
- if (x[0] != 0) return 0; /* bad format */
- *p_a = a;
- return p_a;
- }
- struct ether_addr *ether_aton (const char *x)
- {
- static struct ether_addr a;
- return ether_aton_r (x, &a);
- }
- char *ether_ntoa_r (const struct ether_addr *p_a, char *x) {
- char *y;
- y = x;
- for (int ii = 0; ii < 6; ii++) {
- x += sprintf (x, ii == 0 ? "%.2X" : ":%.2X", p_a->ether_addr_octet[ii]);
- }
- return y;
- }
- char *ether_ntoa (const struct ether_addr *p_a) {
- static char x[18];
- return ether_ntoa_r (p_a, x);
- }
- int ether_line(const char *l, struct ether_addr *e, char *hostname)
- {
- return -1;
- }
- int ether_ntohost(char *hostname, const struct ether_addr *e)
- {
- return -1;
- }
- int ether_hostton(const char *hostname, struct ether_addr *e)
- {
- return -1;
- }
|