From owner-freebsd-questions@FreeBSD.ORG Tue Jan 4 02:21:20 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 667FF16A4CE for ; Tue, 4 Jan 2005 02:21:20 +0000 (GMT) Received: from knife.dreamhost.com (knife.dreamhost.com [66.33.219.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3859C43D1F for ; Tue, 4 Jan 2005 02:21:20 +0000 (GMT) (envelope-from lists@tntluoma.com) Received: from [192.168.2.102] (user-33qt9f9.dialup.mindspring.com [199.174.165.233]) by knife.dreamhost.com (Postfix) with ESMTP id 55E15E4479; Mon, 3 Jan 2005 18:21:17 -0800 (PST) In-Reply-To: <3D1AE682-5DDF-11D9-B56F-000D9333E43C@secure-computing.net> References: <06DDB71C-5DB4-11D9-B56F-000D9333E43C@secure-computing.net> <15416223037.20050103193803@hexren.net> <6074EB8D-5DC6-11D9-89A5-000D93AD26C8@tntluoma.com> <41D9BA53.4060105@locolomo.org> <2DF07A46-5DD2-11D9-89A5-000D93AD26C8@tntluoma.com> <3E8DD18E8557227C2A3C8E5A@utd49554.utdallas.edu> <7C6BEBEDE2DB4AC7E55D6843@utd49554.utdallas.edu> <3D1AE682-5DDF-11D9-B56F-000D9333E43C@secure-computing.net> Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <491556AE-5DF7-11D9-89A5-000D93AD26C8@tntluoma.com> Content-Transfer-Encoding: 7bit From: Timothy Luoma Date: Mon, 3 Jan 2005 21:21:04 -0500 To: Eric F Crist X-Mailer: Apple Mail (2.619) cc: Paul Schmehl cc: FreeBSD-Questions Questions Subject: Re: my lame attempt at a shell script... X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Jan 2005 02:21:20 -0000 On Jan 3, 2005, at 6:28 PM, Eric F Crist wrote: > A couple more questions, then I'm done. Promise. > > I need to verify whether or not there is an entry for grog_firewall_oif > and grog_firewall_iif in /etc/rc.conf. If not, I want to exit with an > error. You want to check for either "grog_firewall_oif" or "grog_firewall_iif" in /etc/rc.conf egrep -v "^#" /etc/rc.conf |\ egrep -q "grog_firewall_oif | grog_firewall_iif" || (echo "$0" ; exit 1) The first line says "skips the comment lines" (the ones that begin with #) > Also, a little more advanced, I need to pull information from an > ifconfig output. I need to pull network numbers for both the internal > interface, as well as external interface. For example, > > vr0: flags=8843 mtu 1500 > inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255 > inet6 fe80::20e:a6ff:feb9:2d3d%vr0 prefixlen 64 scopeid 0x3 > ether 00:0e:a6:b9:2d:3d > media: Ethernet autoselect (100baseTX ) > status: active > > I don't actually need my own address, I need to be able to figure out > that the system, based on the above output, is on the 192.168.1.0/24 > network. This will be input into my firewall rulesets. > > I imagine that there's a util or command around that can do this, or I > can code out the math, but there's got to be an easier way. How much can you assume? Will you know the interface? If so it's fairly easy ifconfig vr0 |\ tr '\012' ' ' |\ sed 's#.*inet ##; s# netmask.*##' roughly translated: line 1: give me the information for vr0 only line 2: replace the end of line (\012) and replace them with a space line 3: delete everything from the beginning of the line up to "inet " and then delete everything from " netmask" to the end of the line Put it into a variable MY_IP=`ifconfig vr0 |\ tr '\012' ' ' |\ sed 's#.*inet ##; s# netmask.*##'` TjL