Revision: 1301
Updated Code
at September 27, 2006 10:50 by gdonald
Updated Code
#!/usr/bin/env php <?php // define some key constants. define("ESCAPE_KEY", 27); define("ENTER_KEY", 13); // get our initial data $tr_return = traceroute("destiney.com"); $ncurses_session = ncurses_init(); $main = ncurses_newwin(0, 0, 0, 0); // main window ncurses_getmaxyx(&$main, $lines, $columns); ncurses_border(0,0, 0,0, 0,0, 0,0); while(1){ // border the main window ncurses_attron(NCURSES_A_REVERSE); ncurses_mvaddstr(0, 1, "Traceroute example"); ncurses_attroff(NCURSES_A_REVERSE); // create a lower window which is dynamically sized... $lower_frame_window = ncurses_newwin(10, $columns-3, $lines-11, 1); ncurses_wborder($lower_frame_window, 0,0, 0,0, 0,0, 0,0); // border it $lower_main_window = ncurses_newwin(8, $columns-5, $lines-10, 2); $main_list_window = ncurses_newwin($lines-12, $columns-3, 1, 1); ncurses_wborder($main_list_window, 0,0, 0,0, 0,0, 0,0); // border it if($currently_selected == ""){ $currently_selected = 0; } for($a=0;$a<count($tr_return);$a++){ $out = $tr_return[$a]; if($currently_selected == intval($a)){ ncurses_wattron($main_list_window,NCURSES_A_REVERSE); ncurses_mvwaddstr ($main_list_window, 1+$a, 1, $out); ncurses_wattroff($main_list_window,NCURSES_A_REVERSE); }else{ ncurses_mvwaddstr ($main_list_window, 1+$a, 1, $out); } } if($y == ENTER_KEY){ $newout = explode(" ", $check_me); $rwhois_return = rwhois(trim($newout[3])); $a=0; while(list($key,$val)=each($rwhois_return)){ ncurses_mvwaddstr($lower_main_window, 1+$a, 1, $key . " - " . $val); $a++; } } elseif($y == ESCAPE_KEY){ ncurses_end(); exit; } ncurses_move(-1,1); // toss cursor out of sight. ncurses_wrefresh($lower_frame_window); ncurses_wrefresh($lower_main_window); // show it ncurses_wrefresh($main_list_window); // wait for user to press a key $y = ncurses_getch($lower_main_window); // check for the presence of up-arrow and down-arrow keys if($y == NCURSES_KEY_UP){ $currently_selected--; if($currently_selected < 0){ $currently_selected = 0; } } elseif($y == NCURSES_KEY_DOWN){ $currently_selected++; if($currently_selected >= count($tr_return)){ $currently_selected = count($tr_return)-1; } } }//end main while // the following are two helper functions for // this ncurses example. function traceroute($address){ exec("/usr/sbin/traceroute $address", $trreturn); return $trreturn; }//end function // reverse whois function rwhois($query){ $fp = fsockopen ("rwhois.arin.net", 4321, $errno, $errstr, 30); if(!$fp){ $ret[] = "$errstr ($errno)\n"; } else { fputs($fp, "$query "); $count=1; while(!feof($fp) && $count < 17){ $back = fgets ($fp,128); $data = explode(":",$back); $ret[$data[1]] = $data[2]; $count++; }//wend fclose ($fp); }//fi return $ret; }//end function ?>
Revision: 1300
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 27, 2006 10:50 by gdonald
Initial Code
#!/usr/bin/env php <?php // define some key constants. define("ESCAPE_KEY", 27); define("ENTER_KEY", 13); // get our initial data $tr_return = traceroute("destiney.com"); $ncurses_session = ncurses_init(); $main = ncurses_newwin(0, 0, 0, 0); // main window ncurses_getmaxyx(&$main, $lines, $columns); ncurses_border(0,0, 0,0, 0,0, 0,0); while(1){ // border the main window ncurses_attron(NCURSES_A_REVERSE); ncurses_mvaddstr(0, 1, "Traceroute example"); ncurses_attroff(NCURSES_A_REVERSE); // create a lower window which is dynamically sized... $lower_frame_window = ncurses_newwin(10, $columns-3, $lines-11, 1); ncurses_wborder($lower_frame_window, 0,0, 0,0, 0,0, 0,0); // border it $lower_main_window = ncurses_newwin(8, $columns-5, $lines-10, 2); $main_list_window = ncurses_newwin($lines-12, $columns-3, 1, 1); ncurses_wborder($main_list_window, 0,0, 0,0, 0,0, 0,0); // border it if($currently_selected == ""){ $currently_selected = 0; } for($a=0;$a<count($tr_return);$a++){ $out = $tr_return[$a]; if($currently_selected == intval($a)){ ncurses_wattron($main_list_window,NCURSES_A_REVERSE); ncurses_mvwaddstr ($main_list_window, 1+$a, 1, $out); ncurses_wattroff($main_list_window,NCURSES_A_REVERSE); }else{ ncurses_mvwaddstr ($main_list_window, 1+$a, 1, $out); } } if($y == ENTER_KEY){ $newout = explode(" ", $check_me); $rwhois_return = rwhois(trim($newout[3])); $a=0; while(list($key,$val)=each($rwhois_return)){ ncurses_mvwaddstr($lower_main_window, 1+$a, 1, $key . " - " . $val); $a++; } } elseif($y == ESCAPE_KEY){ ncurses_end(); exit; } ncurses_move(-1,1); // toss cursor out of sight. ncurses_wrefresh($lower_frame_window); ncurses_wrefresh($lower_main_window); // show it ncurses_wrefresh($main_list_window); // wait for user to press a key $y = ncurses_getch($lower_main_window); // check for the presence of up-arrow and down-arrow keys if($y == NCURSES_KEY_UP){ $currently_selected--; if($currently_selected < 0){ $currently_selected = 0; } } elseif($y == NCURSES_KEY_DOWN){ $currently_selected++; if($currently_selected >= count($tr_return)){ $currently_selected = count($tr_return)-1; } } }//end main while // the following are two helper functions for // this ncurses example. function traceroute($address){ exec("/usr/sbin/traceroute $address", $trreturn); return $trreturn; }//end function // reverse whois function rwhois($query){ $fp = fsockopen ("rwhois.arin.net", 4321, $errno, $errstr, 30); if(!$fp){ $ret[] = "$errstr ($errno)\n"; } else { fputs($fp, "$query "); $count=1; while(!feof($fp) && $count < 17){ $back = fgets ($fp,128); $data = explode(":",$back); $ret[$data[1]] = $data[2]; $count++; }//wend fclose ($fp); }//fi return $ret; }//end function ?>
Initial URL
Initial Description
Initial Title
PHP ncurses traceroute
Initial Tags
Initial Language
PHP