From owner-FreeBSD-users-jp@jp.FreeBSD.org Fri Nov 28 04:13:05 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id hARJD5Y15270;
	Fri, 28 Nov 2003 04:13:05 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from gate.soum.co.jp (gate.soum.co.jp [2001:240:c4:0:2d0:b7ff:fe68:a9c2])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet6 id hARJD4M15242
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Fri, 28 Nov 2003 04:13:05 +0900 (JST)
	(envelope-from fujita@soum.co.jp)
Received: from force.soum.co.jp (force.soum.co.jp [IPv6:2001:240:c4:1:a00:20ff:fef0:4c9c])
	by gate.soum.co.jp (8.12.9p2/8.12.9) with ESMTP id hARJCuDn039662
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Fri, 28 Nov 2003 04:12:56 +0900 (JST)
	(envelope-from fujita@soum.co.jp)
Received: from vanilla.soum.co.jp (vanilla.soum.co.jp [2001:240:c4:1:202:b3ff:fe98:8115])
	by force.soum.co.jp (8.11.7/3.7W-2003052906) with ESMTP id hARJCtm18293;
	Fri, 28 Nov 2003 04:12:55 +0900 (JST)
Received: from localhost (unknown@localhost [IPv6:::1])
	by vanilla.soum.co.jp (8.12.10/8.12.10) with ESMTP id hARJCtQ6016677;
	Fri, 28 Nov 2003 04:12:55 +0900 (JST)
	(envelope-from fujita@soum.co.jp)
Message-Id: <20031128.041255.74740735.fujita@soum.co.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
From: FUJITA Kazutoshi <fujita@soum.co.jp>
In-Reply-To: <84820031128025426umino@msb.biglobe.ne.jp>
References: <84820031127194334umino@msb.biglobe.ne.jp>
	<20031127.213945.31643341.fujita@soum.co.jp>
	<84820031128025426umino@msb.biglobe.ne.jp>
X-Face: ";<z'&kw-&,vXx!Jx^WU<6Jj\Wi}zdr6i|I>PnIN=f2{%Xj2PnI+zHd.39&Cn1)}br_7:<V
 ;i'>N|2[CbS87Du6#6?|UeqX'&OfyZG-mX#'5T>k/~8X(F,2Mb_pNd8]3Cb1u[kSZjF}J+#`L5(g);
 <FsHJWB5@Qq
X-PGP-PublicKey: http://www.soum.co.jp/~fujita/fujita-GnuPG-publickey.txt
X-PGP-FingerPrint: 9956 2ECE 7E7D B425 EC2D  D49E FEBB 3C5F 2C34 1ECA
Organization: SOUM Corporation, JAPAN
X-URL: http://www.soum.co.jp/
X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0
 =?iso-2022-jp?B?KBskQjgtTFobKEIvU0FLQUtJKQ==?=
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 28 Nov 2003 04:12:55 +0900
X-Sequence: FreeBSD-users-jp 77361
Subject: [FreeBSD-users-jp 77361] Re: NIC =?ISO-2022-JP?B?GyRCJHIbKEI=?=
 promiscuous =?ISO-2022-JP?B?GyRCJEskOSRrJEskTyEpGyhC?= 
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: fujita@soum.co.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+031103

From: Ryo Umino <umino@msb.biglobe.ne.jp>
Subject: [FreeBSD-users-jp 77359] Re: NIC $B$r(B promiscuous $B$K$9$k$K$O!)(B 
Date: Fri, 28 Nov 2003 03:05:22 +0900
Message-ID: <84820031128025426umino@msb.biglobe.ne.jp>

> $B$U$8$?$5$s(B>         ifr.ifr_flagshigh |= (IFF_PPROMISC >> 16);
                                                ^
> $B$U$8$?$5$s(B> $B$H$7$F$d$k$H!"(BPROMISC$B%U%i%0$,N)$D$H;W$$$^$9!#(B
> 
> $B!!$3$A$i$bJQ2=L5$7$G$7$?!%(Bnet/if.h$B$N(Bifreq$B9=B$BN$K$O(Bifr_flaghigh
> $B$C$F$N$OL5$$$N$G$9$,%(%i!<$,=P$^$;$s$M!%(B

IFF_PROMISC
$B$G$O$J$/!"(B
IFF_PPROMISC
$B$G;n$7$F$b$i$($F$$$^$9$+!)(B

$B!t$A$J$_$K!"(Bifr_flagshigh$B$O%^%/%m$G$9!#(B


> ifconfig.c$B$G$O(Bflag$B$K%^%9%/$9$k$H$-$K(B0x20000$B$K$J$C$F$$$?$N$G!$Be$o$j$K(B
> $B$3$NCM$r;H$&$3$H$G(Bpromiscuous$B$K$9$k$3$H$,$G$-$^$7$?!%(B

$BF1$8$3$H$K$J$k$O$:$J$N$G$9$,!#(B


$B$A$J$_$K!"0J2<$N%3!<%I$G%F%9%H$7$^$7$?!#(B


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>

int
main(void)
{
	int s;
	int val;
	struct ifreq ifr;
	char ifname[] = "fxp0";

	memset(&ifr, 0, sizeof(ifr));
	strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));

	s = socket(AF_INET, SOCK_DGRAM, 0);
	if (s < 0) {
		perror("socket()\n");
		exit(errno);
	}

	val = ioctl(s, SIOCGIFFLAGS, &ifr);
	if (val < 0) {
		perror("ioctl(SIOCGIFFLAGS)");
		exit(errno);
	}
	ifr.ifr_flagshigh |= (IFF_PPROMISC >> 16);
	val = ioctl(s, SIOCSIFFLAGS, &ifr);
	if (val < 0) {
		perror("ioctl(SIOCSIFFLAGS)");
		exit(errno);
	}
	return 0;
}


--($B$U(B)
