アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
includeにはきっと変なものがたくさん (スコア:1)
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <sys/types.h>
#include <net/if.h>
#include <net/if_media.h>
#include <dev/wi/if_wavelan_ieee.h>
#include <net/route.h>
#include <sysexits.h>
#include <errno.h>
int
main(argc, argv)
int argc;
char *argv[];
{
struct ifreq ifr;
int i, n, status = -1;
int *media_list;
int s;
struct wi_req wreq;
int count;
struct wi_sigcache *wsig;
char *pt;
memset(&ifr, 0, sizeof(struct ifreq));
snprintf(ifr.ifr_name, IFNAMSIZ, "wi0");
memset(&wreq, 0, sizeof(struct wi_req));
ifr.ifr_data = (caddr_t)&wreq;
wreq.wi_len = WI_MAX_DATALEN;
wreq.wi_type = WI_RID_READ_CACHE;
s = socket(AF_INET6, SOCK_DGRAM, 0);
if (s < 0) {
printf("ERROR: socket\n");
return -1;
}
if (ioctl(s, SIOCGWAVELAN, (caddr_t)&ifr) < 0) {
printf("ERROR: ioctl %d\n", errno);
return -1;
}
pt = (char *)wreq.wi_val;
memcpy((void *)&count, (void *)pt, sizeof(int));
pt += (sizeof(int));
wsig = (struct wi_sigcache *)pt;
if (count == 0) {
printf("ERROR: count\n");
return -1;
}
for (i = 0; i < count; i++) {
printf("--- item%d ---\n", i);
printf("MAC: %x:%x:%x:%x:%x:%x\n",
(unsigned char)wsig[i].macsrc[0],
(unsigned char)wsig[i].macsrc[1],
(unsigned char)wsig[i].macsrc[2],
(unsigned char)wsig[i].macsrc[3],
(unsigned char)wsig[i].macsrc[4],
(unsigned char)wsig[i].macsrc[5]);
printf("IP: %d.%d.%d.%d\n",
(u_int8_t)((wsig[i].ipsrc ) & 0xff),
(u_int8_t)((wsig[i].ipsrc >> 8) & 0xff),
(u_int8_t)((wsig[i].ipsrc >> 16) & 0xff),
(u_int8_t)((wsig[i].ipsrc >> 24) & 0xff)
);
printf("SIGNAL: %d\n", wsig[i].signal);
printf("NOISE: %d\n", wsig[i].noise);
printf("QUALITY: %d\n", wsig[i].quality);
}
close(s);
return 0;
}