亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? motelist-linux

?? 無線通信的主要編程軟件,是無線通信工作人員的必備工具,關天相關教程我會在后續傳上.
??
字號:
#!/usr/bin/perl -wuse strict;# $Id: motelist-linux,v 1.5 2005/09/23 00:16:37 cssharp Exp $# @author Cory Sharp <cory@moteiv.com># @author Joe Polastremy $help = <<'EOF';usage: motelist [options]  $Revision: 1.5 $options:  -h  display this help  -c  compact format, not pretty but easier for parsing  -f  specify the usb-serial file (for smote.cs)  -k  kernel version: 2.4, 2.6, auto (default)  -m  method to scan usb: procfs, sysfs, auto (default)  -dev_prefix  force the device prefix for the serial device  -usb  display extra usb informationEOFmy %Opt = (  compact => 0,  usb => 0,  method => "auto",  kernel => "auto",  dev_prefix => [ "/dev/usb/tts/", "/dev/ttyUSB", "/dev/tts/USB" ],  usbserial => "sudo cat /proc/tty/driver/usbserial |",);while (@ARGV) {  last unless $ARGV[0] =~ /^-/;  my $opt = shift @ARGV;  if( $opt eq "-h" ) { print "$help\n"; exit 0; }  elsif( $opt eq "-c" ) { $Opt{compact} = 1; }  elsif( $opt eq "-f" ) { $Opt{usbserial} = shift @ARGV; }  elsif( $opt eq "-k" ) { $Opt{kernel} = shift @ARGV; }  elsif( $opt eq "-m" ) { $Opt{method} = shift @ARGV; }  elsif( $opt eq "-dev_prefix" ) { $Opt{dev_prefix} = shift @ARGV; }  elsif( $opt eq "-usb" ) { $Opt{usb} = 1; }  else { print STDERR "$help\nerror, unknown command line option $opt\n"; exit 1; }}if( $Opt{kernel} eq "auto" ) {  $Opt{kernel} = "unknown";  $Opt{kernel} = $1 if snarf("/proc/version") =~ /\bLinux version (\d+\.\d+)/;}if( $Opt{method} eq "auto" ) {  $Opt{method} = ($Opt{kernel} eq "2.4") ? "procfs" : "sysfs";}my @devs = $Opt{method} eq "procfs" ? scan_procfs() : scan_sysfs();print_motelist( sort { cmp_usbdev($a,$b) } @devs );##  SysFS#sub scan_sysfs {  #  Scan /sys/bus/usb/drivers/usb for FTDI devices  my @ftdidevs =    grep { ($_->{UsbVendor}||"") eq "0403" && ($_->{UsbProduct}||"") eq "6001" }    map { {      SysPath => $_,      UsbVendor => snarf("$_/idVendor",1),      UsbProduct => snarf("$_/idProduct",1),    } }    glob("/sys/bus/usb/drivers/usb/*");  #  Gather information about each FTDI device  for my $f (@ftdidevs) {    my $syspath = $f->{SysPath};    $f->{InfoManufacturer} = snarf("$syspath/manufacturer",1);    $f->{InfoProduct} = snarf("$syspath/product",1);    $f->{InfoSerial} = snarf("$syspath/serial",1);    $f->{UsbDevNum} = snarf("$syspath/devnum",1);    my $devstr = readlink($syspath);    if( $devstr =~ m{([^/]+)/usb(\d+)/.*-([^/]+)$} ) {      $f->{UsbPath} = "usb-$1-$3";      $f->{UsbBusNum} = $2;    }    ($f->{SysDev} = $syspath) =~ s{^.*/}{};    my $port = "$syspath/$f->{SysDev}:1.0";    ($f->{DriverName} = readlink("$port/driver")) =~ s{^.*/}{} if -l "$port/driver";    ($f->{SerialDevName} = (glob("$port/tty*"),undef)[0]) =~ s{^.*/}{};    $f->{SerialDevNum} = $1 if $f->{SerialDevName} =~ /(\d+)/;    $f->{SerialDevName} = getSerialDevName( $f->{SerialDevNum} ) || "  (none)";  }  return @ftdidevs;}##  Scan Procfs#sub scan_procfs {  my $text_devs = snarf("< /proc/bus/usb/devices");  my $text_serial = snarf($Opt{usbserial});  my @usbdevs = map { {parse_usb_devices_text($_)} }                grep { !/^\s*$/ } split /\n+(?=T:)/, $text_devs;  my %usbtree = build_usb_tree( @usbdevs );  my %usbserialtree = build_usbserial_tree( $text_serial );  for my $tts ( values %usbserialtree ) {    $usbtree{usbkey($tts->{path})}{usbserial} = $tts if defined $tts->{path};  }  my @ftdidevs = map { {      UsbVendor => $_->{Vendor},      UsbProduct => $_->{ProdID},      InfoManufacturer => $_->{Manufacturer},      InfoProduct => $_->{Product},      InfoSerial => $_->{SerialNumber},      UsbBusNum => $_->{nbus},      UsbDevNum => $_->{ndev},      UsbPath => (($Opt{kernel} eq "2.4") ? $_->{usbserial}{path} : $_->{usbpath}),      DriverName => $_->{driver},      SerialDevNum => $_->{usbserial}{tts},      SerialDevName => getSerialDevName($_->{usbserial}{tts}) || "  (none)",    } }    grep { ($_->{Vendor}||"") eq "0403" && ($_->{ProdID}||"") eq "6001" }    values %usbtree;  return @ftdidevs;}sub build_usb_tree {  my @devs = @_;  my %tree = ();  for my $dev (sort { $a->{Lev} <=> $b->{Lev} } @devs) {    my ($bus,$lev,$prnt) = ( $dev->{Bus}+0, $dev->{Lev}+0, $dev->{Prnt}+0 );    my $devnum = $dev->{"Dev#"}+0;    $dev->{nbus} = $bus;    $dev->{ndev} = $devnum;    $tree{"bus$bus"} = {} unless exists $tree{"bus$bus"};    $tree{"bus$bus"}{"dev$devnum"} = $dev;    if( $lev == 0 ) {      $dev->{usbpath} = "usb-$dev->{SerialNumber}";    } else {      my $sep = ($lev==1) ? "-" : ".";      $dev->{parent} = $tree{"bus$bus"}{"dev$prnt"};      $dev->{usbpath} = $dev->{parent}{usbpath} . $sep . ($dev->{Port}+1);    }    $tree{usbkey($dev->{usbpath})} = $dev;  }  return %tree;}sub parse_usb_devices_text {  my $text = shift;  $text =~ s/^\S+\s*//gm;  $text =~ s/\s*(\S+=)/\001$1/g;  return map { m/(.*?)=(.*)/ } split /\001/, $text;}sub build_usbserial_tree {  my $text = shift;  my %tree = ();  while( $text =~ /^([^:]+):(.*)/mg ) {    my ($tts,$params) = ($1,$2);    $tree{$tts} = { tts => $tts };    while ($params =~ m/\s+([^:]+):(?:"([^"]*)"|(\S+))/g) {      $tree{$tts}{$1} = $2||$3;    }  }  return %tree;}sub usbkey {  if( $Opt{kernel} eq "2.4" ) {    (my $key = $_[0]) =~ s/^.*-//;    return $key;  }  return $_[0];}##  getSerialDevName##  For each device, force to use dev_prefix if it's not an array.  Otherwise,#  assume it's a list of candidate prefixes.  Check them and commit to the#  first one that actually exists.#sub getSerialDevName {  my $devnum = shift;  my $devname = undef;  if( defined $devnum ) {    if( ref($Opt{dev_prefix}) eq "ARRAY" ) {      $devname = $devnum;      for my $prefix (@{$Opt{dev_prefix}}) {        my $file = $prefix . $devnum;        if( -e $file ) { $devname = $file; last; }      }    } else {      $devname = $Opt{dev_prefix} . $devnum;    }  }  return $devname;}##  Print motelist#sub print_motelist {  my @devs = @_;  #  If none were found, quit  if( @devs == 0 ) {    print "No devices found.\n";    return;  }  #  Print a header  if( !$Opt{compact} ) {    if( $Opt{usb} ) {      print << "EOF" unless $Opt{compact};Bus Dev USB Path                 Reference  Device           Description--- --- ------------------------ ---------- ---------------- -------------------------------------EOF    } else {      print << "EOF" unless $Opt{compact};Reference  Device           Description---------- ---------------- ---------------------------------------------EOF    }  }  #  Print the usb information  for my $dev (sort { cmp_usbdev($a,$b) } @devs) {    my $desc = join( " ", $dev->{InfoManufacturer}||"", $dev->{InfoProduct}||"" ) || " (none)";    my @output = ( $dev->{InfoSerial}||" (none)", $dev->{SerialDevName}, $desc );    @output = ( $dev->{UsbBusNum}, $dev->{UsbDevNum}, $dev->{UsbPath}, @output ) if $Opt{usb};    if( $Opt{compact} ) {      print join(",",@output) . "\n";    } else {      printf( ($Opt{usb}?"%3d %3d %-24s ":"")."%-10s %-16s %s\n", @output );    }  }}##  Cmp Usbdev's#sub cmp_usbdev {  my ($a,$b) = @_;  if( defined $a->{SerialDevNum} ) {    if( defined $b->{SerialDevNum} ) {      return $a->{SerialDevNum} <=> $b->{SerialDevNum};    }    return -1;  }  return 1 if defined $b->{SerialDevNum};  return ($a->{InfoSerial}||"") cmp ($b->{InfoSerial}||"");}##  Read a file in#sub snarf {  open my $fh, $_[0] or return undef;  my $text = do{local $/;<$fh>};  close $fh;  $text =~ s/\s+$// if $_[1];  return $text;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲porn| 国产自产视频一区二区三区| 91在线一区二区| 亚洲影视在线观看| 欧美大白屁股肥臀xxxxxx| 免费高清不卡av| 中文字幕综合网| 日韩精品专区在线影院重磅| 日韩一区二区中文字幕| 91亚洲男人天堂| 国内精品不卡在线| 紧缚捆绑精品一区二区| 国产精品伊人色| 日韩va欧美va亚洲va久久| 自拍偷自拍亚洲精品播放| 亚洲视频小说图片| 一区二区三区高清| 国产精品理论在线观看| 精品国产伦一区二区三区免费 | 日韩不卡在线观看日韩不卡视频| 亚洲国产日韩一级| 中文字幕不卡的av| 精品国产制服丝袜高跟| 国产亚洲成年网址在线观看| 欧美一区二区三区四区久久| 色老汉av一区二区三区| 成人一区在线观看| 经典三级一区二区| 成人午夜短视频| 欧美亚洲国产一区二区三区 | 国产精品传媒入口麻豆| 亚洲福利一区二区| 国产自产视频一区二区三区| 大美女一区二区三区| 欧美中文字幕久久| 91免费在线视频观看| 777欧美精品| 欧美这里有精品| 日韩欧美一级二级| 亚洲欧美另类综合偷拍| 国产精品国产自产拍高清av王其| 亚洲自拍偷拍九九九| 国产麻豆视频一区二区| 国产91综合一区在线观看| 国产suv精品一区二区883| 欧洲国内综合视频| 国产无一区二区| 美女免费视频一区| 黑人巨大精品欧美一区| 欧美亚州韩日在线看免费版国语版| 精品久久久久99| 视频一区二区三区在线| 免费亚洲电影在线| 91视频免费观看| 国产午夜精品美女毛片视频| 日韩电影网1区2区| 日本电影亚洲天堂一区| 久久九九99视频| 日本成人在线一区| 欧美日韩电影一区| 久久久五月婷婷| 中文字幕一区二区三区在线不卡| 日韩毛片一二三区| av电影天堂一区二区在线观看| 在线免费观看一区| 亚洲日本一区二区| 99亚偷拍自图区亚洲| 国产精品伦理在线| 亚洲gay无套男同| 国产福利视频一区二区三区| 91啪在线观看| 亚洲视频一区在线| 99在线精品免费| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产在线国偷精品免费看| 精品成人私密视频| 国产一区999| 国产精品人妖ts系列视频| 国产一区二区电影| 日本一区二区三区在线观看| 亚洲精品国产无套在线观| 国模冰冰炮一区二区| 久久综合色婷婷| 一级做a爱片久久| 欧美又粗又大又爽| 一区二区不卡在线播放| 在线日韩国产精品| 日韩精品91亚洲二区在线观看 | 26uuu久久综合| 国产一区二区精品久久91| 国产视频一区二区在线| 成人av免费在线播放| 日韩欧美一区二区视频| 国产自产视频一区二区三区| 日本一区二区三级电影在线观看| 粉嫩绯色av一区二区在线观看| 中文字幕av一区 二区| 日本久久电影网| 人人精品人人爱| 国产亚洲制服色| 色综合久久精品| 国产欧美精品一区二区色综合| 国产91精品入口| 亚洲国产综合色| 精品久久久久av影院| 99久久99久久久精品齐齐| 午夜国产精品一区| 欧美性videosxxxxx| 久久国内精品视频| 日韩精品一区二区三区视频播放| 国产91精品欧美| 日韩影视精彩在线| 中文字幕中文字幕中文字幕亚洲无线| 欧美性生交片4| 国产一区在线观看麻豆| 一区二区视频在线看| 精品国产sm最大网站免费看| 91麻豆福利精品推荐| 美女视频黄久久| 亚洲综合男人的天堂| 国产视频一区在线播放| 欧美日韩精品综合在线| 成人精品视频一区| 秋霞电影一区二区| 亚洲人被黑人高潮完整版| 日韩一区二区精品葵司在线| 色综合激情五月| 成人性色生活片免费看爆迷你毛片| 午夜精品一区二区三区电影天堂 | 亚洲美女视频一区| 久久女同性恋中文字幕| 欧美日韩国产另类一区| 99re热视频精品| 国产一区二区三区视频在线播放| 亚洲观看高清完整版在线观看| 国产精品久久久久久亚洲毛片| 日韩欧美自拍偷拍| 欧美日韩你懂得| 久久99精品国产91久久来源| 亚洲另类在线视频| 成人欧美一区二区三区白人 | 国产精品久久久久久久久免费相片| 91精品国产综合久久精品图片| 91成人在线精品| 一本大道综合伊人精品热热 | 亚洲成人动漫在线免费观看| 国产精品久久久久久久蜜臀| 久久久久久久久久美女| 久久婷婷国产综合国色天香 | 成人美女视频在线看| 国产精品18久久久久久久久久久久 | 岛国av在线一区| 国产91富婆露脸刺激对白| 国产最新精品免费| 精品一区二区三区香蕉蜜桃| 麻豆精品视频在线| 精品影视av免费| 韩国v欧美v亚洲v日本v| 久久99精品国产.久久久久久| 精品在线观看免费| 国产精品一二三四五| 99视频超级精品| 色嗨嗨av一区二区三区| 欧美性视频一区二区三区| 欧美日韩亚洲国产综合| 91.成人天堂一区| 欧美α欧美αv大片| 日本一区二区三区高清不卡 | 91免费视频网址| 欧美午夜一区二区三区| 欧美久久一区二区| 不卡的av电影| 91在线观看免费视频| 欧美三级电影在线看| 欧美一区二区成人| 久久久精品蜜桃| 亚洲色图制服丝袜| 天天操天天综合网| 国产精品一区二区在线观看网站| 粉嫩高潮美女一区二区三区| 色伊人久久综合中文字幕| 91精品国产综合久久香蕉的特点| 欧美tickle裸体挠脚心vk| 国产精品人成在线观看免费 | 国产成人自拍高清视频在线免费播放| 国产不卡在线一区| 欧美日韩不卡视频| 久久综合资源网| 一区二区三区在线视频观看58| 蜜臀av在线播放一区二区三区| 国产成人av网站| 51午夜精品国产| 日本一区二区三区四区在线视频| 亚洲成人激情综合网| 国产精品系列在线播放| 欧美丰满嫩嫩电影| 亚洲欧美日韩国产成人精品影院| 久久精品免费观看| 欧美色大人视频| 中文子幕无线码一区tr|