Tuesday, October 30, 2012
using ngrep to view sip messages
ngrep -W byline -d eth0 port 5060
Just the invites:
ngrep -W byline -d eth0 INVITE
thanks to
http://www.jonathanmanning.com/2009/11/17/how-to-sip-capture-using-ngrep-debug-sip-packets/
Thursday, October 11, 2012
bash script cgi post and get process web form input
Thanks to Thanks to http://oinkzwurgl.org/bash_cgi
#!/bin/bash echo -e "Content-type: text/html\n\n" cat <<EOF <html> <body> <form action="?foo=1234" method="POST" enctype="application/x-www-form-urlencoded"> bar: <input type="text" name="bar"><br/> foobar: <textarea name="foobar"></textarea></br> <input type="submit"> </form> EOF # (internal) routine to store POST data function cgi_get_POST_vars() { # check content type # FIXME: not sure if we could handle uploads with this.. [ "${CONTENT_TYPE}" != "application/x-www-form-urlencoded" ] && \ echo "bash.cgi warning: you should probably use MIME type "\ "application/x-www-form-urlencoded!" 1>&2 # save POST variables (only first time this is called) [ -z "$QUERY_STRING_POST" \ -a "$REQUEST_METHOD" = "POST" -a ! -z "$CONTENT_LENGTH" ] && \ read -n $CONTENT_LENGTH QUERY_STRING_POST # prevent shell execution local t t=${QUERY_STRING_POST//%60//} # %60 = ` t=${t//\`//} t=${t//\$(//} QUERY_STRING_POST=${t} return } # (internal) routine to decode urlencoded strings function cgi_decodevar() { [ $# -ne 1 ] && return local v t h # replace all + with whitespace and append %% t="${1//+/ }%%" while [ ${#t} -gt 0 -a "${t}" != "%" ]; do v="${v}${t%%\%*}" # digest up to the first % t="${t#*%}" # remove digested part # decode if there is anything to decode and if not at end of string if [ ${#t} -gt 0 -a "${t}" != "%" ]; then h=${t:0:2} # save first two chars t="${t:2}" # remove these v="${v}"`echo -e \\\\x${h}` # convert hex to special char fi done # return decoded string echo "${v}" return } # routine to get variables from http requests # usage: cgi_getvars method varname1 [.. varnameN] # method is either GET or POST or BOTH # the magic varible name ALL gets everything function cgi_getvars() { [ $# -lt 2 ] && return local q p k v s # prevent shell execution t=${QUERY_STRING//%60//} # %60 = ` t=${t//\`//} t=${t//\$(//} QUERY_STRING=${t} # get query case $1 in GET) [ ! -z "${QUERY_STRING}" ] && q="${QUERY_STRING}&" ;; POST) cgi_get_POST_vars [ ! -z "${QUERY_STRING_POST}" ] && q="${QUERY_STRING_POST}&" ;; BOTH) [ ! -z "${QUERY_STRING}" ] && q="${QUERY_STRING}&" cgi_get_POST_vars [ ! -z "${QUERY_STRING_POST}" ] && q="${q}${QUERY_STRING_POST}&" ;; esac shift s=" $* " # parse the query data while [ ! -z "$q" ]; do p="${q%%&*}" # get first part of query string k="${p%%=*}" # get the key (variable name) from it v="${p#*=}" # get the value from it q="${q#$p&*}" # strip first part from query string # decode and evaluate var if requested [ "$1" = "ALL" -o "${s/ $k /}" != "$s" ] && \ eval "$k=\"`cgi_decodevar \"$v\"`\"" done return } # register all GET and POST variables cgi_getvars BOTH ALL echo "<pre>foo=$foo</pre>" echo "<pre>bar=$bar</pre>" echo "<pre>foobar=$foobar</pre>" cat <<EOF </body> </html> EOF
Monday, October 08, 2012
Thursday, October 04, 2012
dd progress status
watch -n 10 kill -USR1 $PID_OF_DD
thanks to http://linuxcommando.blogspot.com/2008/06/show-progress-during-dd-copy.html
thanks to http://linuxcommando.blogspot.com/2008/06/show-progress-during-dd-copy.html
Subscribe to:
Posts (Atom)