forked from wireshark/wireshark
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfaq.py
executable file
·2101 lines (1670 loc) · 76 KB
/
faq.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/usr/bin/env python
#
# faq.py
#
# Routines to assemble a FAQ list for the Wireshark web site.
# Questions and answer content can be found below. Section and
# question numbers will be automatically generated.
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys
import string
class faq_section:
def __init__(self, name, secnum):
self.name = name
self.secnum = secnum
self.qa = []
self.subsecs = []
def add_qa(self, question, answer, tag):
q_num = len(self.qa) + 1
q_id = "%s.%d" % (self.get_num_string(), q_num)
self.qa.append( (q_id, question, answer, tag) )
def get_all_qa(self):
return self.qa
def add_subsec(self, subsec):
self.subsecs.append(subsec)
def get_all_subsecs(self):
return self.subsecs
def get_num_string(self):
return "%d" % (self.secnum)
def get_name(self):
return self.name
def get_num_name(self):
return "%s. %s" % (self.get_num_string(), self.name)
def get_header_level(self):
return 3
def print_index(self):
print(("<a href=#sec%s><h%d>%s:</h%d></a>\n" % (self.get_num_string(), self.get_header_level(), self.get_num_name(), self.get_header_level())))
for qa in self.qa:
id = qa[0]
question = qa[1]
print('<p class="faq_q">')
print(('<a class="faq_qnum" href=#q%s>%s %s</a>\n' % (id, id, question)))
print('</p>')
for subsec in self.subsecs:
subsec.print_index()
def print_contents(self):
# Table header
print(("""
<a name="sec%s">
<h%d>%s</h%d>
</a>
""" % (self.get_num_string(), self.get_header_level(), self.get_num_name(), self.get_header_level())))
# Questions and Answers
for qa in self.qa:
id = qa[0]
question = qa[1]
answer = qa[2]
tag = qa[3]
print('<p class="faq_q">')
print(('<a class="faq_qnum" name=q%s>Q %s:</a>' % (id, id)))
if tag is not None:
print(('<a name=%s>' % tag))
print(('<span>%s</span>' % (question)))
if tag is not None:
print('</a>')
print('</p>')
print('<p class="faq_a">')
print('<span class="faq_anum">A:</span>\n')
print(answer)
print('</p>')
# Subsections
for subsec in self.subsecs:
subsec.print_contents()
# Table footer
print("")
class faq_subsection(faq_section):
def __init__(self, name, secnum, subsecnum):
self.name = name
self.secnum = secnum
self.subsecnum = subsecnum
self.qa = []
self.subsecs = []
def get_num_string(self):
return "%d.%d" % (self.secnum, self.subsecnum)
def get_header_level(self):
return 2
class faq_subsubsection(faq_section):
def __init__(self, name, secnum, subsecnum, subsubsecnum):
self.name = name
self.secnum = secnum
self.subsecnum = subsecnum
self.subsubsecnum = subsubsecnum
self.qa = []
self.subsecs = []
def get_num_string(self):
return "%d.%d.%d" % (self.secnum, self.subsecnum, self.subsubsecnum)
def get_header_level(self):
return 2
sec_num = 0
subsec_num = 0
subsubsec_num = 0
sections = []
current_section = None
parent_section = None
grandparent_section = None
current_question = None
current_tag = None
# Make a URL of itself
def selflink(text):
return "<a href=\"%s\">%s</a>" % (text, text)
# Add a section
def section(name):
global sec_num
global subsec_num
global subsubsec_num
global current_section
global grandparent_section
assert not current_question
sec_num = sec_num + 1
subsec_num = 0
subsubsec_num = 0
sec = faq_section(name, sec_num)
sections.append(sec)
current_section = sec
grandparent_section = sec
# Add a subsection
def subsection(name):
global subsec_num
global subsubsec_num
global current_section
global parent_section
global grandparent_section
assert not current_question
subsec_num = subsec_num + 1
subsubsec_num = 0
sec = faq_subsection(name, sec_num, subsec_num)
grandparent_section.add_subsec(sec)
current_section = sec
parent_section = sec
# Add a subsubsection
def subsubsection(name):
global subsubsec_num
global current_section
global parent_section
assert not current_question
subsubsec_num = subsubsec_num + 1
sec = faq_subsubsection(name, sec_num, subsec_num, subsubsec_num)
parent_section.add_subsec(sec)
current_section = sec
# Add a question
def question(text, tag=None):
global current_question
global current_tag
assert current_section
assert not current_question
assert not current_tag
current_question = text
current_tag = tag
# Add an answer
def answer(text):
global current_question
global current_tag
assert current_section
assert current_question
current_section.add_qa(current_question, text, current_tag)
current_question = None
current_tag = None
# Create the index
def create_index():
print("""
<a name="index">
<h1>Index</h1>
</a>
""")
for sec in sections:
sec.print_index()
print("""
""")
# Print result
def create_output(header='', footer=''):
print(header)
create_index()
for sec in sections:
sec.print_contents()
print(footer)
def main():
header = '''\
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Wireshark FAQ</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
'''
footer = '''\
</body>
</html>
'''
if len(sys.argv) > 1 and sys.argv[1] == '-b': # Only print the document body
header = ''
footer = ''
create_output(header, footer)
#################################################################
section("General Questions")
#################################################################
question("What is Wireshark?")
answer("""
Wireshark® is a network protocol analyzer. It lets you capture and
interactively browse the traffic running on a computer network. It has
a rich and powerful feature set and is world's most popular tool of its
kind. It runs on most computing platforms including Windows, OS X,
Linux, and UNIX. Network professionals, security experts, developers,
and educators around the world use it regularly. It is freely available
as open source, and is released under the GNU General Public License
version 2.
<br />
It is developed and maintained by a global team of protocol experts, and
it is an example of a
<a href="http://en.wikipedia.org/wiki/Disruptive_technology">disruptive
technology</a>.
<br />
Wireshark used to be known as Ethereal®. See the next question
for details about the name change. If you're still using Ethereal, it
is <a href="http://www.ethereal.com/appnotes/enpa-sa-00024.html">strongly
recommended that you upgrade to Wireshark</a>.
<br />
For more information, please see the
<a href="/about.html">About Wireshark</a>
page.
""")
question("What's up with the name change? Is Wireshark a fork?")
answer("""
In May of 2006, Gerald Combs (the original author of Ethereal)
went to work for CACE Technologies (best known for WinPcap).
Unfortunately, he had to leave the Ethereal trademarks behind.
<br />
This left the project in an awkward position. The only reasonable way
to ensure the continued success of the project was to change the name.
This is how Wireshark was born.
<br />
Wireshark is almost (but not quite) a fork. Normally a "fork" of an open source
project results in two names, web sites, development teams, support
infrastructures, etc. This is the case with Wireshark except for one notable
exception -- every member of the core development team is now working on
Wireshark. There has been no active development on Ethereal since the name
change. Several parts of the Ethereal web site (such as the mailing lists,
source code repository, and build farm) have gone offline.
<br />
More information on the name change can be found here:
<ul class="item_list">
<li><a href="http://www.prweb.com/releases/2006/6/prweb396098.htm">Original press release</a>
<li><a href="http://trends.newsforge.com/article.pl?sid=06/06/09/1349255&from=rss">NewsForge article</a>
<li>Many other articles in <a href="http://www.wireshark.org/bibliography.html">our bibliography</a>
</ul>
""")
question("Where can I get help?")
answer("""
Community support is available on the
<a href="http://ask.wireshark.org/">Q&A site</a> and on the
wireshark-users mailing list. Subscription information and archives for
all of Wireshark's mailing lists can be found at %s. An IRC channel
dedicated to Wireshark can be found at %s.
<br />
Self-paced and instructor-led training is available at <a
href="http://www.wiresharktraining.com">Wireshark University</a>.
Wireshark University also offers certification via the Wireshark
Certified Network Analyst program.
""" % (selflink("https://www.wireshark.org/mailman/listinfo"),
selflink("irc://irc.freenode.net/wireshark")
))
question("What kind of shark is Wireshark?")
answer("""
<i>carcharodon photoshopia</i>.
""")
question("How is Wireshark pronounced, spelled and capitalized?")
answer("""
Wireshark is pronounced as the word <i>wire</i> followed immediately by
the word <i>shark</i>. Exact pronunciation and emphasis may vary
depending on your locale (e.g. Arkansas).
<br />
It's spelled with a capital <i>W</i>, followed by a lower-case
<i>ireshark</i>. It is not a CamelCase word, i.e., <i>WireShark</i>
is incorrect.
""")
question("How much does Wireshark cost?", "but_thats_not_all")
answer("""
Wireshark is "free software"; you can download it without paying any
license fee. The version of Wireshark you download isn't a "demo"
version, with limitations not present in a "full" version; it
<em>is</em> the full version.
<br />
The license under which Wireshark is issued is <a
href="http://www.gnu.org/licenses/gpl-2.0.html">the GNU General Public
License version 2</a>. See <a
href="http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html">the GNU
GPL FAQ</a> for some more information.
""")
question("But I just paid someone on eBay for a copy of Wireshark! Did I get ripped off?")
answer("""
That depends. Did they provide any sort of value-added product or service, such
as installation support, installation media, training, trace file analysis, or
funky-colored shark-themed socks? Probably not.
<br />
Wireshark is <a href="/download.html">available for anyone to download,
absolutely free, at any time</a>. Paying for a copy implies that you should
get something for your money.
""")
question("Can I use Wireshark commercially?")
answer("""
Yes, if, for example, you mean "I work for a commercial organization;
can I use Wireshark to capture and analyze network traffic in our
company's networks or in our customer's networks?"
<br />
If you mean "Can I use Wireshark as part of my commercial product?", see
<a href="#derived_work_gpl">the next entry in the FAQ</a>.
""")
question("Can I use Wireshark as part of my commercial product?",
"derived_work_gpl")
answer("""
As noted, Wireshark is licensed under <a
href="http://www.gnu.org/licenses/gpl-2.0.html">the GNU General Public
License, version 2</a>. The GPL imposes conditions on your use of GPL'ed
code in your own products; you cannot, for example, make a "derived
work" from Wireshark, by making modifications to it, and then sell the
resulting derived work and not allow recipients to give away the
resulting work. You must also make the changes you've made to the
Wireshark source available to all recipients of your modified version;
those changes must also be licensed under the terms of the GPL. See the
<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html">GPL
FAQ</a> for more details; in particular, note the answer to <a
href="http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLCommercially">the
question about modifying a GPLed program and selling it
commercially</a>, and <a
href="http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#LinkingWithGPL">the
question about linking GPLed code with other code to make a proprietary
program</a>.
<br />
You can combine a GPLed program such as Wireshark and a commercial
program as long as they communicate "at arm's length", as per <a
href="http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLInProprietarySystem">this
item in the GPL FAQ</a>.
<br />
We recommend keeping Wireshark and your product completely separate,
communicating over sockets or pipes. If you're loading any part of
Wireshark as a DLL, you're probably doing it wrong.
""")
question("What protocols are currently supported?")
answer("""
There are currently hundreds of supported
protocols and media. Details can be found in the
<a href="/docs/man-pages/wireshark.html">wireshark(1)</a> man page.
""")
question("Are there any plans to support {your favorite protocol}?")
answer("""
Support for particular protocols is added to Wireshark as a result of
people contributing that support; no formal plans for adding support for
particular protocols in particular future releases exist.
""")
question("""Can Wireshark read capture files from {your favorite network
analyzer}?""")
answer("""
Support for particular capture file formats is added to Wireshark as a result
of people contributing that support; no formal plans for adding support for
particular capture file formats in particular future releases exist.
<br />
If a network analyzer writes out files in a format already supported by
Wireshark (e.g., in libpcap format), Wireshark may already be able to read
them, unless the analyzer has added its own proprietary extensions to
that format.
<br />
If a network analyzer writes out files in its own format, or has added
proprietary extensions to another format, in order to make Wireshark read
captures from that network analyzer, we would either have to have a
specification for the file format, or the extensions, sufficient to give
us enough information to read the parts of the file relevant to
Wireshark, or would need at least one capture file in that format
<strong>AND</strong> a detailed textual analysis of the packets in that
capture file (showing packet time stamps, packet lengths, and the
top-level packet header) in order to reverse-engineer the file
format.
<br />
Note that there is no guarantee that we will be able to reverse-engineer
a capture file format.
""")
question("What devices can Wireshark use to capture packets?")
answer("""
Wireshark can read live data from Ethernet, Token-Ring, FDDI, serial (PPP
and SLIP) (if the OS on which it's running allows Wireshark to do so),
802.11 wireless LAN (if the OS on which it's running allows Wireshark to
do so), ATM connections (if the OS on which it's running allows Wireshark
to do so), and the "any" device supported on Linux by recent versions of
libpcap.
<br />
See <a href="http://wiki.wireshark.org/CaptureSetup/NetworkMedia">the list of
supported capture media on various OSes</a> for details (several items
in there say "Unknown", which doesn't mean "Wireshark can't capture on
them", it means "we don't know whether it can capture on them"; we
expect that it will be able to capture on many of them, but we haven't
tried it ourselves - if you try one of those types and it works, please
update the wiki page accordingly.
<br />
It can also read a variety of capture file formats, including:
<ul>
<li> AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/Packet Grabber captures
<li> AIX's iptrace captures
<li> Accellent's 5Views LAN agent output
<li> Cinco Networks NetXRay captures
<li> Cisco Secure Intrusion Detection System IPLog output
<li> CoSine L2 debug output
<li> DBS Etherwatch VMS text output
<li> Endace Measurement Systems' ERF format captures
<li> EyeSDN USB S0 traces
<li> HP-UX nettl captures
<li> ISDN4BSD project i4btrace captures
<li> Linux Bluez Bluetooth stack hcidump -w traces
<li> Lucent/Ascend router debug output
<li> Microsoft Network Monitor captures
<li> Network Associates Windows-based Sniffer captures
<li> Network General/Network Associates DOS-based Sniffer (compressed or uncompressed) captures
<li> Network Instruments Observer version 9 captures
<li> Novell LANalyzer captures
<li> RADCOM's WAN/LAN analyzer captures
<li> Shomiti/Finisar Surveyor captures
<li> Toshiba's ISDN routers dump output
<li> VMS TCPIPtrace/TCPtrace/UCX$TRACE output
<li> Visual Networks' Visual UpTime traffic capture
<li> libpcap, tcpdump and various other tools using tcpdump's capture format
<li> snoop and atmsnoop output
</ul>
so that it can read traces from various network types, as captured by
other applications or equipment, even if it cannot itself capture on
those network types.
""")
question("""
Does Wireshark work on Windows Vista or Windows Server 2008?
""")
answer("""
Yes, but if you want to capture packets as a normal user, you must make sure
npf.sys is loaded. Wireshark's installer enables this by default. This is not a
concern if you run Wireshark as Administrator, but this is discouraged. See the
<a
href="http://wiki.wireshark.org/CaptureSetup/CapturePrivileges#windows">CapturePrivileges</a>
page on the wiki for more details.
""")
#################################################################
section("Downloading Wireshark")
#################################################################
question("""Why do I get an error when I try to run the Win32 installer?""")
answer("""
The program you used to download it may have downloaded it incorrectly.
Web browsers and download accelerators sometimes may do this.
<br />
Try downloading it with, for example:
<ul>
<li>Wget, for which Windows binaries are available from <a
href="http://www.christopherlewis.com/WGet/WGetFiles.htm">Christopher Lewis</a>
or
<a href="http://www.jensroesner.de/wgetgui/">wGetGUI</a>, which offers a GUI
interface that uses wget;
<li>WS_FTP from <a href="http://www.ipswitch.com/">Ipswitch</a>,
<li>the <code>ftp</code> command that comes with Windows.
</ul>
If you use the <code>ftp</code> command, make sure you do the transfer in
binary mode rather than ASCII mode, by using the <code>binary</code> command
before transferring the file.
""")
#################################################################
section("Installing Wireshark")
#################################################################
question("""I installed the Wireshark RPM (or other package); why did
it install TShark but not Wireshark?""")
answer("""
Many distributions have separate Wireshark packages, one for non-GUI
components such as TShark, editcap, dumpcap, etc. and one for the GUI.
If this is the case on your system, there's probably a separate package
named <code>wireshark-gnome</code> or <code>wireshark-gtk+</code>. Find it and
install it.
""")
#################################################################
section("Building Wireshark")
#################################################################
question("""I have libpcap installed; why did the configure script not
find pcap.h or bpf.h?""")
answer("""
Are you sure pcap.h and bpf.h are installed? The official distribution
of libpcap only installs the libpcap.a library file when "make install"
is run. To install pcap.h and bpf.h, you must run "make install-incl".
If you're running Debian or Redhat, make sure you have the "libpcap-dev"
or "libpcap-devel" packages installed.
<br />
It's also possible that pcap.h and bpf.h have been installed in a strange
location. If this is the case, you may have to tweak aclocal.m4.
""")
question("""
Why do I get the error
<blockquote><samp>dftest_DEPENDENCIES was already defined in condition TRUE,
which implies condition HAVE_PLUGINS_TRUE</samp></blockquote>
when I try to build Wireshark from SVN or a SVN snapshot?
""")
answer("""
You probably have automake 1.5 installed on your machine (the command
<kbd>automake --version</kbd> will report the version of automake on
your machine). There is a bug in that version of automake that causes
this problem; upgrade to a later version of automake (1.6 or later).
""")
question("""
Why does the linker fail with a number of "Output line too long." messages
followed by linker errors when I try to build Wireshark?
""")
answer("""
The version of the <code>sed</code> command on your system is incapable of
handling very long lines. On Solaris, for example,
<code>/usr/bin/sed</code> has a line length limit too low to allow
<code>libtool</code> to work; <code>/usr/xpg4/bin/sed</code> can handle it, as
can GNU <code>sed</code> if you have it installed.
<br />
On Solaris, changing your command search path to search
<code>/usr/xpg4/bin</code> before <code>/usr/bin</code> should make the problem
go away; on any platform on which you have this problem, installing GNU
<code>sed</code> and changing your command path to search the directory in
which it is installed before searching the directory with the version of
<code>sed</code> that came with the OS should make the problem go away.
""")
question("""
When I try to build Wireshark on Solaris, why does the link fail
complaining that <code>plugin_list</code> is undefined?
""")
answer("""
This appears to be due to a problem with some versions of the GTK+ and
GLib packages from www.sunfreeware.org; un-install those packages, and
try getting the 1.2.10 versions from that site, or the versions from <a
href="http://www.thewrittenword.com">The Written Word</a>, or the
versions from Sun's GNOME distribution, or the versions from the
supplemental software CD that comes with the Solaris media kit, or build
them from source from <a href="http://www.gtk.org/">the GTK Web
site</a>. Then re-run the configuration script, and try rebuilding
Wireshark. (If you get the 1.2.10 versions from www.sunfreeware.org, and
the problem persists, un-install them and try installing one of the
other versions mentioned.)
""")
question("""
When I try to build Wireshark on Windows, why does the build fail because
of conflicts between <code>winsock.h</code> and <code>winsock2.h</code>?
""")
answer("""
As of Wireshark 0.9.5, you must install WinPcap 2.3 or later, and the
corresponding version of the developer's pack, in order to be able to
compile Wireshark; it will not compile with older versions of the
developer's pack. The symptoms of this failure are conflicts between
definitions in <code>winsock.h</code> and in <code>winsock2.h</code>; Wireshark
uses <code>winsock2.h</code>, but pre-2.3 versions of the WinPcap
developer's packet use <code>winsock.h</code>. (2.3 uses
<code>winsock2.h</code>, so if Wireshark were to use <code>winsock.h</code>, it
would not be able to build with current versions of the WinPcap
developer's pack.)
<br />
Note that the installed version of the developer's pack should be the
same version as the version of WinPcap you have installed.
""")
#################################################################
section("Starting Wireshark")
#################################################################
question("""Why does Wireshark crash with a Bus Error when I try to run
it on Solaris 8?""")
answer("""
Some versions of the GTK+ library from www.sunfreeware.org appear to be
buggy, causing Wireshark to drop core with a Bus Error. Un-install those
packages, and try getting the 1.2.10 version from that site, or the
version from <a href="http://www.thewrittenword.com">The Written
Word</a>, or the version from Sun's GNOME distribution, or the version
from the supplemental software CD that comes with the Solaris media kit,
or build it from source from <a href="http://www.gtk.org/">the GTK Web
site</a>. Update the GLib library to the 1.2.10 version, from the same
source, as well. (If you get the 1.2.10 versions from
www.sunfreeware.org, and the problem persists, un-install them and try
installing one of the other versions mentioned.)
<br />
Similar problems may exist with older versions of GTK+ for earlier
versions of Solaris.
""")
question("""When I try to run Wireshark, why does it complain about
<code>sprint_realloc_objid</code> being undefined?""")
answer("""
Wireshark can only be linked with version 4.2.2 or later of UCD SNMP.
Your version of Wireshark was dynamically linked with such a version of
UCD SNMP; however, you have an older version of UCD SNMP installed,
which means that when Wireshark is run, it tries to link to the older
version, and fails. You will have to replace that version of UCD SNMP
with version 4.2.2 or a later version.
""")
question("""
I've installed Wireshark from Fink on Mac OS X; why is it very slow to
start up?
""")
answer("""
When an application is installed on OS X, prior to 10.4, it is usually
"prebound" to speed up launching the application. (That's what the
"Optimizing" phase of installation is.)
<br />
Fink normally performs prebinding automatically when you install a
package. However, in some rare cases, for whatever reason the prebinding
caches get corrupt, and then not only does prebinding fail, but startup
actually becomes much slower, because the system tries in vain to
perform prebinding "on the fly" as you launch the application. This
fails, causing sometimes huge delays.
<br />
To fix the prebinding caches, run the command
<pre>
sudo /sw/var/lib/fink/prebound/update-package-prebinding.pl -f
</pre>
""")
#################################################################
section("Crashes and other fatal errors")
#################################################################
question("""
I have an XXX network card on my machine; if I try to capture on it, why
does my machine crash or reset itself?
""")
answer("""
This is almost certainly a problem with one or more of:
<ul>
<li>the operating system you're using;
<li>the device driver for the interface you're using;
<li>the libpcap/WinPcap library and, if this is Windows, the WinPcap
device driver;
</ul>
so:
<ul>
<li>if you are using Windows, see <a
href="http://www.winpcap.org/contact.htm">the WinPcap support
page</a> - check the "Submitting bugs" section;
<li>if you are using some Linux distribution, some version of BSD, or
some other UNIX-flavored OS, you should report the problem to the
company or organization that produces the OS (in the case of a Linux
distribution, report the problem to whoever produces the distribution).
</ul>
""")
question("""
Why does my machine crash or reset itself when I select "Start" from the
"Capture" menu or select "Preferences" from the "Edit" menu?
""")
answer("""
Both of those operations cause Wireshark to try to build a list of the
interfaces that it can open; it does so by getting a list of interfaces
and trying to open them. There is probably an OS, driver, or, for
Windows, WinPcap bug that causes the system to crash when this happens;
see the previous question.
""")
#################################################################
section("Capturing packets")
#################################################################
question("""When I use Wireshark to capture packets, why do I see only
packets to and from my machine, or not see all the traffic I'm expecting
to see from or to the machine I'm trying to monitor?""", "promiscsniff")
answer("""
This might be because the interface on which you're capturing is plugged
into an Ethernet or Token Ring switch; on a switched network, unicast
traffic between two ports will not necessarily appear on other ports -
only broadcast and multicast traffic will be sent to all ports.
<br />
Note that even if your machine is plugged into a hub, the "hub" may be
a switched hub, in which case you're still on a switched network.
<br />
Note also that on the Linksys Web site, they say that their
auto-sensing hubs "broadcast the 10Mb packets to the port that operate
at 10Mb only and broadcast the 100Mb packets to the ports that operate
at 100Mb only", which would indicate that if you sniff on a 10Mb port,
you will not see traffic coming sent to a 100Mb port, and <i>vice
versa</i>. This problem has also been reported for Netgear dual-speed
hubs, and may exist for other "auto-sensing" or "dual-speed" hubs.
<br />
Some switches have the ability to replicate all traffic on all ports to
a single port so that you can plug your analyzer into that single port to
sniff all traffic. You would have to check the documentation for the
switch to see if this is possible and, if so, to see how to do this.
See <a href="http://wiki.wireshark.org/SwitchReference">the switch
reference page</a> on <a href="http://wiki.wireshark.org/">the Wireshark
Wiki</a> for information on some switches. (Note that it's a Wiki, so
you can update or fix that information, or add additional information on
those switches or information on new switches, yourself.)
<br />
Note also that many firewall/NAT boxes have a switch built into them;
this includes many of the "cable/DSL router" boxes. If you have a box
of that sort, that has a switch with some number of Ethernet ports into
which you plug machines on your network, and another Ethernet port used
to connect to a cable or DSL modem, you can, at least, sniff traffic
between the machines on your network and the Internet by plugging
the Ethernet port on the router going to the modem, the Ethernet port on
the modem, and the machine on which you're running Wireshark into a hub
(make sure it's not a switching hub, and that, if it's a dual-speed hub,
all three of those ports are running at the same speed.
<br />
If your machine is <em>not</em> plugged into a switched network or a
dual-speed hub, or it is plugged into a switched network but the port is
set up to have all traffic replicated to it, the problem might be that
the network interface on which you're capturing doesn't support
"promiscuous" mode, or because your OS can't put the interface into
promiscuous mode. Normally, network interfaces supply to the host only:
<ul>
<li>packets sent to one of that host's link-layer addresses;
<li>broadcast packets;
<li>multicast packets sent to a multicast address that the host has
configured the interface to accept.
</ul>
Most network interfaces can also be put in "promiscuous" mode, in which
they supply to the host all network packets they see. Wireshark will try
to put the interface on which it's capturing into promiscuous mode
unless the "Capture packets in promiscuous mode" option is turned off in
the "Capture Options" dialog box, and TShark will try to put the
interface on which it's capturing into promiscuous mode unless the
<code>-p</code> option was specified. However, some network interfaces
don't support promiscuous mode, and some OSes might not allow interfaces
to be put into promiscuous mode.
<br />
If the interface is not running in promiscuous mode, it won't see any
traffic that isn't intended to be seen by your machine. It
<strong>will</strong> see broadcast packets, and multicast packets sent
to a multicast MAC address the interface is set up to receive.
<br />
You should ask the vendor of your network interface whether it supports
promiscuous mode. If it does, you should ask whoever supplied the
driver for the interface (the vendor, or the supplier of the OS you're
running on your machine) whether it supports promiscuous mode with that
network interface.
<br />
In the case of token ring interfaces, the drivers for some of them, on
Windows, may require you to enable promiscuous mode in order to capture
in promiscuous mode. See <a
href="http://wiki.wireshark.org/CaptureSetup/TokenRing">the Wireshark
Wiki item on Token Ring capturing</a> for details.
<br />
In the case of wireless LAN interfaces, it appears that, when those
interfaces are promiscuously sniffing, they're running in a
significantly different mode from the mode that they run in when they're
just acting as network interfaces (to the extent that it would be a
significant effort for those drivers to support for promiscuously
sniffing <em>and</em> acting as regular network interfaces at the same
time), so it may be that Windows drivers for those interfaces don't
support promiscuous mode.
""")
question("""When I capture with Wireshark, why can't I see any TCP
packets other than packets to and from my machine, even though another
analyzer on the network sees those packets?""")
answer("""
You're probably not seeing <em>any</em> packets other than unicast
packets to or from your machine, and broadcast and multicast packets; a
switch will normally send to a port only unicast traffic sent to the MAC
address for the interface on that port, and broadcast and multicast
traffic - it won't send to that port unicast traffic sent to a MAC
address for some other interface - and a network interface not in
promiscuous mode will receive only unicast traffic sent to the MAC
address for that interface, broadcast traffic, and multicast traffic
sent to a multicast MAC address the interface is set up to receive.
<br />
TCP doesn't use broadcast or multicast, so you will only see your own
TCP traffic, but UDP services may use broadcast or multicast so you'll
see some UDP traffic - however, this is not a problem with TCP traffic,
it's a problem with unicast traffic, as you also won't see all UDP
traffic between other machines.
<br />
I.e., this is probably <a href="#promiscsniff">the same question
as this earlier one</a>; see the response to that question.
""")
question("""Why am I only seeing ARP packets when I try to capture
traffic?""")
answer("""
You're probably on a switched network, and running Wireshark on a machine
that's not sending traffic to the switch and not being sent any traffic
from other machines on the switch. ARP packets are often broadcast
packets, which are sent to all switch ports.
<br />
I.e., this is probably <a href="#promiscsniff">the same question
as this earlier one</a>; see the response to that question.