io.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #!/usr/bin/tclsh
  2. #
  3. # Copyright (C) 2001 by USC/ISI
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms are permitted
  7. # provided that the above copyright notice and this paragraph are
  8. # duplicated in all such forms and that any documentation, advertising
  9. # materials, and other materials related to such distribution and use
  10. # acknowledge that the software was developed by the University of
  11. # Southern California, Information Sciences Institute.  The name of the
  12. # University may not be used to endorse or promote products derived from
  13. # this software without specific prior written permission.
  14. #
  15. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
  16. # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  17. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18. #
  19. # An tcl script that extracts DATA/ACK packets from/to ISI domain, 
  20. # used by SAMAN ModelGen
  21. #
  22. # This work is supported by DARPA through SAMAN Project
  23. # (http://www.isi.edu/saman/), administered by the Space and Naval
  24. # Warfare System Center San Diego under Contract No. N66001-00-C-8066
  25. #
  26. if { $argc != 1} {
  27. puts "usage: io.tcl <tcpdump ASCII file> "
  28. exit
  29. } else {
  30. set arg [split $argv " " ]
  31. set tfile [lindex $arg 0]
  32. }
  33. set isiPrefix "129.1"
  34. set fi [open $tfile r ]
  35. set f1 [open $tfile.inbound w ]
  36. set f2 [open $tfile.outbound w ]
  37. while {[gets $fi line] >= 0} {
  38. set sTime [lindex $line 0]  
  39. set ipport [lindex $line 1]
  40. set s [split $ipport "."]
  41. set opport [lindex $line 3]
  42. set d [split $opport "."]
  43. set prefixc [format "%s.%s" [lindex $s 0] [lindex $s 1]]
  44. set prefixs [format "%s.%s" [lindex $d 0] [lindex $d 1]]
  45.         #data packet from ISI
  46. if { $prefixc == $isiPrefix} {
  47.                 puts $f2 "$line"
  48. } else {
  49.                 puts $f1 "$line"
  50. }
  51. }
  52. close $f1 
  53. close $f2 
  54. close $fi