From: Michael Tremer Date: Sat, 31 Jul 2010 10:57:00 +0000 (+0200) Subject: network: Some more general IP functions. X-Git-Tag: 001~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b5c311d3199630a450a6e86ef64ad127715c4b7;p=network.git network: Some more general IP functions. --- diff --git a/functions.ip b/functions.ip new file mode 100644 index 00000000..f95265e9 --- /dev/null +++ b/functions.ip @@ -0,0 +1,52 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2010 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +function ip_split_prefix() { + local address=${1} + + assert isset address + + echo "${address%%/*}" +} + +function ip_get_prefix() { + local address=${1} + + assert isset address + + echo "${address##*/}" +} + +function ip_detect_protocol() { + local address=${1} + + assert isset address + + local protocol + for protocol in ipv4 ipv6; do + if ${protocol}_is_valid ${address}; then + echo "${protocol}" + return ${EXIT_OK} + fi + done + + return ${EXIT_ERROR} +}