#5 Anpassung für Android

Closed
opened 5 years ago by MyLogins · 2 comments
MyLogins commented 5 years ago

Hallo,

aufgrund folgender Punkte funktioniert das Script nicht unter Android:

  • sed ist kein gnu sed
  • awk ist nicht vorhanden
  • wget kennt Schalter --quit nicht
  • sort kennt Schalter -V nicht

Ich habe das Script folgendermaßen angepasst:

  • sed angepasst
  • awk in allen Funktionen, die für --afwall benötigt werden, ersetzt
  • curl als downloadtool
  • sort mit Schalter -k statt -V (funktioniert erst ab toybox 0.7.3 [http://landley.net/toybox/#21-02-2017], da vorher der Schalter -k fehlerhaft war)

Das Script sollte damit unter Linux, MacOs, FreeBSD und Android funktionieren.

Nachfolgend meine Änderungen:

1c1
< #!/bin/bash
---
> #!/system/bin/env bash
23c23
< downloadtool=wget
---
> downloadtool=curl
112,114c112,114
<                    $dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
<                    $dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
<                    $dl "http://www.bgplookingglass.com/4-byte-asn-names-list" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
---
>                    $dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
>                    $dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
>                    $dl "http://www.bgplookingglass.com/4-byte-asn-names-list" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g; s/^[[:space:]]*<pre>//; s/[ ]\+/ /g' >> $temp2
123,125c123,125
<                asn_array=(`$dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
<                asn_array=(${asn_array[@]} `$dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
<                asn_array=(${asn_array[@]} `$dl "http://www.bgplookingglass.com/4-byte-asn-names-list" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
---
>                asn_array=(`$dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
>                asn_array=(${asn_array[@]} `$dl "http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
>                asn_array=(${asn_array[@]} `$dl "http://www.bgplookingglass.com/4-byte-asn-names-list" | sed -n '/AS[0-9]/ p' | sed 's/<br \/>/\'$'\n/g' | grep -i "$cname" | sed 's/^[[:space:]]*<pre>//' | grep -Eo '^AS[0-9]+'`)
134c134
<            cat $local_net_file | grep -i "$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu 
---
>            cat $local_net_file | grep -i "$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4 
140c140
<            $dl "https://stat.ripe.net/data/announced-prefixes/data.json?preferred_version=1.1&resource=$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu
---
>            $dl "https://stat.ripe.net/data/announced-prefixes/data.json?preferred_version=1.1&resource=$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k1,2 -k3,3 -k4,4
146c146
<            $dl "https://ipinfo.io/$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu
---
>            $dl "https://ipinfo.io/$1" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4
152c152
<            whois -h whois.radb.net -i origin $1 | grep -w "route:" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu 
---
>            whois -h whois.radb.net -i origin $1 | grep -w "route:" | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4
194,196c194,208
<    get_firstIP() { echo ${1/\//.} | awk -F"." '{ printf "%.0f", $1*2^24+$2*2^16+$3*2^8+$4 }'; }        # First IP of network
<    get_IPrange() { echo $1 | awk -F"/" '{ printf "%.0f", 2^(32-$2)}'; }                    # IP range of network
<    get_lastIP() { echo ${1/\//.} | awk -F"." '{ printf "%.0f", $1*2^24+$2*2^16+$3*2^8+$4+2^(32-$5)}'; }    # Last IP +1 of network
---
>    get_firstIP() {                                             # First IP of network
>        OIFS=$IFS
>                 IFS="."
>                 set ${1/\//.}
>                 IFS=$OIFS
>        printf "%.0f" $(($1*2**24+$2*2**16+$3*2**8+$4));
>    }
>    get_IPrange() { echo -n $((2**(32-`echo $1 |cut -d/ -f2`))) | xargs -0 printf "%.0f"; }                 # IP range of network
>    get_lastIP() {                                              # Last IP +1 of network
>            OIFS=$IFS
>        IFS="."
>        set ${1/\//.}
>        IFS=$OIFS
>                 printf "%.0f" $(($1*2**24+$2*2**16+$3*2**8+$4+2**(32-$5)));
>    }
199c211
<    dec2ip() { echo $1 | awk '{ printf "%i.%i.%i.%i", $1/(2^24), $1%(2^24)/(2^16), $1%(2^24)%(2^16)/(2^8), $1%(2^24)%(2^16)%(2^8)}'; }
---
>    dec2ip() { echo $(($1/2**24)).$(($1%2**24/2**16)).$(($1%2**24%2**16/2**8)).$(($1%2**24%2**16%2**8)); }
209c221
<            if [[ `echo $lastIP $maxIP | awk '$1>$2 {printf 1}'` ]]; then                # Comparing big integer. Only keep network if last IP is not covered by previous network
---
>            if [ $lastIP -gt $maxIP ]; then                                         # Comparing big integer. Only keep network if last IP is not covered by previous network
236c248,255
<            range=`echo $prenetmask  $netmask | awk '{printf "%d", $1+$2;}'`
---
>            range=`printf "%d" $(($prenetmask+$netmask))`
>            exponent=-1
>            for ((i=0; $i <= 32; i++ )); do
>                if [ $((2**$i)) -eq $range ]; then
>                    exponent=$i
>                    break
>                fi
>            done
238,239c257,258
<            if [[ `echo $firstIP $prelastIP $range $prefirstIP | awk '($1==$2) && (log($3)/log(2)==int(log($3)/log(2))) && ($4%$3==0) {printf 1}'` ]]; then
<                suffix=`echo $range | awk '{printf "%i", 32-log($1)/log(2);}'`
---
>       if [ $firstIP -eq $prelastIP -a ${exponent} -ge 0 -a $(($prefirstIP%$range)) -eq 0 ]; then
>         suffix=$((32-${exponent}))
270c289
<            countIP=`echo $countIP $netmask | awk '{printf "%.0f", $1+$2}'`               # Count IP
---
>            countIP=`echo -n $(($countIP+$netmask)) | xargs -0 printf "%.0f"`         # Count IP
311c330
<                asn_list=(`echo ${asn_list[@]} | sed 's/ /\n/g' | sort -Vu`)                            # Linebreaking and Sorting
---
>                asn_list=(`echo ${asn_list[@]} | sed 's/ /\'$'\n/g' | sort -u`)                         # Linebreaking and Sorting
319c338
<                        net_list=(`echo ${net_list[@]} ${net_array[@]} | sed 's/ /\n/g' | sort -Vu`)            # Append to list, sorting
---
>                        net_list=(`echo ${net_list[@]} ${net_array[@]} | sed 's/ /\'$'\n/g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4`)         # Append to list, sorting
575c594
<                    company_array_from_arg=(`sed 's/[ ]*//g; s/,\+/ /g; s/\[//g; s/\]//g; s/[.\]*//g' <<< $2`) # Trim empty entries
---
>                    company_array_from_arg=(`sed -E 's/[ ]*//g; s/[,]+/ /g; s/\[//g; s/\]//g; s/[.\]*//g' <<< $2`) # Trim empty entries
Hallo, aufgrund folgender Punkte funktioniert das Script nicht unter Android: - sed ist kein gnu sed - awk ist nicht vorhanden - wget kennt Schalter --quit nicht - sort kennt Schalter -V nicht Ich habe das Script folgendermaßen angepasst: - sed angepasst - awk in allen Funktionen, die für --afwall benötigt werden, ersetzt - curl als downloadtool - sort mit Schalter -k statt -V (funktioniert erst ab toybox 0.7.3 [http://landley.net/toybox/#21-02-2017], da vorher der Schalter -k fehlerhaft war) Das Script sollte damit unter Linux, MacOs, FreeBSD und Android funktionieren. Nachfolgend meine Änderungen: <pre> 1c1 &lt; #!/bin/bash --- &gt; #!/system/bin/env bash 23c23 &lt; downloadtool=wget --- &gt; downloadtool=curl 112,114c112,114 &lt; $dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 &lt; $dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 &lt; $dl &quot;http://www.bgplookingglass.com/4-byte-asn-names-list&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 --- &gt; $dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 &gt; $dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 &gt; $dl &quot;http://www.bgplookingglass.com/4-byte-asn-names-list&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g; s/^[[:space:]]*&lt;pre&gt;//; s/[ ]\+/ /g' &gt;&gt; $temp2 123,125c123,125 &lt; asn_array=(`$dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) &lt; asn_array=(${asn_array[@]} `$dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) &lt; asn_array=(${asn_array[@]} `$dl &quot;http://www.bgplookingglass.com/4-byte-asn-names-list&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) --- &gt; asn_array=(`$dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) &gt; asn_array=(${asn_array[@]} `$dl &quot;http://www.bgplookingglass.com/list-of-autonomous-system-numbers-2&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) &gt; asn_array=(${asn_array[@]} `$dl &quot;http://www.bgplookingglass.com/4-byte-asn-names-list&quot; | sed -n '/AS[0-9]/ p' | sed 's/&lt;br \/&gt;/\'$'\n/g' | grep -i &quot;$cname&quot; | sed 's/^[[:space:]]*&lt;pre&gt;//' | grep -Eo '^AS[0-9]+'`) 134c134 &lt; cat $local_net_file | grep -i &quot;$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu --- &gt; cat $local_net_file | grep -i &quot;$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4 140c140 &lt; $dl &quot;https://stat.ripe.net/data/announced-prefixes/data.json?preferred_version=1.1&resource=$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu --- &gt; $dl &quot;https://stat.ripe.net/data/announced-prefixes/data.json?preferred_version=1.1&resource=$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k1,2 -k3,3 -k4,4 146c146 &lt; $dl &quot;https://ipinfo.io/$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu --- &gt; $dl &quot;https://ipinfo.io/$1&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4 152c152 &lt; whois -h whois.radb.net -i origin $1 | grep -w &quot;route:&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed 's/^[0]\{,2\}\([0-9]\)/\1/g; s/\.[0]\{,2\}\([0-9]\)/.\1/g; s/\/[0]\?/\//g' | sort -Vu --- &gt; whois -h whois.radb.net -i origin $1 | grep -w &quot;route:&quot; | grep -Eo '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/)(3[0-2]|[1-2][0-9]|0?[1-2]?[1-9])' | sed -E 's/^[0]{0,2}([0-9])/\1/g; s/\.[0]{0,2}([0-9])/.\1/g; s/\/[0]?/\//g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4 194,196c194,208 &lt; get_firstIP() { echo ${1/\//.} | awk -F&quot;.&quot; '{ printf &quot;%.0f&quot;, $1*2^24+$2*2^16+$3*2^8+$4 }'; } # First IP of network &lt; get_IPrange() { echo $1 | awk -F&quot;/&quot; '{ printf &quot;%.0f&quot;, 2^(32-$2)}'; } # IP range of network &lt; get_lastIP() { echo ${1/\//.} | awk -F&quot;.&quot; '{ printf &quot;%.0f&quot;, $1*2^24+$2*2^16+$3*2^8+$4+2^(32-$5)}'; } # Last IP +1 of network --- &gt; get_firstIP() { # First IP of network &gt; OIFS=$IFS &gt; IFS=&quot;.&quot; &gt; set ${1/\//.} &gt; IFS=$OIFS &gt; printf &quot;%.0f&quot; $(($1*2**24+$2*2**16+$3*2**8+$4)); &gt; } &gt; get_IPrange() { echo -n $((2**(32-`echo $1 |cut -d/ -f2`))) | xargs -0 printf &quot;%.0f&quot;; } # IP range of network &gt; get_lastIP() { # Last IP +1 of network &gt; OIFS=$IFS &gt; IFS=&quot;.&quot; &gt; set ${1/\//.} &gt; IFS=$OIFS &gt; printf &quot;%.0f&quot; $(($1*2**24+$2*2**16+$3*2**8+$4+2**(32-$5))); &gt; } 199c211 &lt; dec2ip() { echo $1 | awk '{ printf &quot;%i.%i.%i.%i&quot;, $1/(2^24), $1%(2^24)/(2^16), $1%(2^24)%(2^16)/(2^8), $1%(2^24)%(2^16)%(2^8)}'; } --- &gt; dec2ip() { echo $(($1/2**24)).$(($1%2**24/2**16)).$(($1%2**24%2**16/2**8)).$(($1%2**24%2**16%2**8)); } 209c221 &lt; if [[ `echo $lastIP $maxIP | awk '$1&gt;$2 {printf 1}'` ]]; then # Comparing big integer. Only keep network if last IP is not covered by previous network --- &gt; if [ $lastIP -gt $maxIP ]; then # Comparing big integer. Only keep network if last IP is not covered by previous network 236c248,255 &lt; range=`echo $prenetmask $netmask | awk '{printf &quot;%d&quot;, $1+$2;}'` --- &gt; range=`printf &quot;%d&quot; $(($prenetmask+$netmask))` &gt; exponent=-1 &gt; for ((i=0; $i &lt;= 32; i++ )); do &gt; if [ $((2**$i)) -eq $range ]; then &gt; exponent=$i &gt; break &gt; fi &gt; done 238,239c257,258 &lt; if [[ `echo $firstIP $prelastIP $range $prefirstIP | awk '($1==$2) && (log($3)/log(2)==int(log($3)/log(2))) && ($4%$3==0) {printf 1}'` ]]; then &lt; suffix=`echo $range | awk '{printf &quot;%i&quot;, 32-log($1)/log(2);}'` --- &gt; if [ $firstIP -eq $prelastIP -a ${exponent} -ge 0 -a $(($prefirstIP%$range)) -eq 0 ]; then &gt; suffix=$((32-${exponent})) 270c289 &lt; countIP=`echo $countIP $netmask | awk '{printf &quot;%.0f&quot;, $1+$2}'` # Count IP --- &gt; countIP=`echo -n $(($countIP+$netmask)) | xargs -0 printf &quot;%.0f&quot;` # Count IP 311c330 &lt; asn_list=(`echo ${asn_list[@]} | sed 's/ /\n/g' | sort -Vu`) # Linebreaking and Sorting --- &gt; asn_list=(`echo ${asn_list[@]} | sed 's/ /\'$'\n/g' | sort -u`) # Linebreaking and Sorting 319c338 &lt; net_list=(`echo ${net_list[@]} ${net_array[@]} | sed 's/ /\n/g' | sort -Vu`) # Append to list, sorting --- &gt; net_list=(`echo ${net_list[@]} ${net_array[@]} | sed 's/ /\'$'\n/g' | sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4`) # Append to list, sorting 575c594 &lt; company_array_from_arg=(`sed 's/[ ]*//g; s/,\+/ /g; s/\[//g; s/\]//g; s/[.\]*//g' &lt;&lt;&lt; $2`) # Trim empty entries --- &gt; company_array_from_arg=(`sed -E 's/[ ]*//g; s/[,]+/ /g; s/\[//g; s/\]//g; s/[.\]*//g' &lt;&lt;&lt; $2`) # Trim empty entries </pre>
maloe commented 5 years ago
Owner

Hallo MyLogin,

stimmt, das Script läuft nicht direkt auf Android. Es lief früher schonmal unter Termux und ist nun mit einer kompatiblen Version dort wieder lauffähig. Sed, awk und wget sind dort (teilweise in busybox) enthalten. Der sort Parameter "-V" ist zwar ebenfalls vorhanden, allerdings nicht funktionstüchtig. Daher habe ich die "-k" Schalter wieder eingefügt. Diese führen aber nicht vollständig zur gewünschten Sortierung weil die Suffixe hinter "/" ignoriert werden. Das sollte aber zu keinem Fehlverhalten führen. Zu Termux, siehe auch das Wiki.

Danke für Deinen Beitrag!

Hallo MyLogin, stimmt, das Script läuft nicht direkt auf Android. Es lief früher schonmal unter Termux und ist nun mit einer kompatiblen Version dort wieder lauffähig. Sed, awk und wget sind dort (teilweise in busybox) enthalten. Der sort Parameter "-V" ist zwar ebenfalls vorhanden, allerdings nicht funktionstüchtig. Daher habe ich die "-k" Schalter wieder eingefügt. Diese führen aber nicht vollständig zur gewünschten Sortierung weil die Suffixe hinter "/" ignoriert werden. Das sollte aber zu keinem Fehlverhalten führen. Zu Termux, siehe auch das Wiki. Danke für Deinen Beitrag!
maloe commented 1 year ago
Owner

Der sort Parameter -V wurde mittlerweile wohl in Termux gefixed und das Script läuft seit v0.8.1 ohne Anpassung auch unter Termux. Die spezielle Version wurde daher entfernt.

Der sort Parameter -V wurde mittlerweile wohl in Termux gefixed und das Script läuft seit v0.8.1 ohne Anpassung auch unter Termux. Die spezielle Version wurde daher entfernt.
Sign in to join this conversation.
No Label
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.