pyshark.tshark.tshark.TSharkNotFoundException: TShark not found.
时间: 2023-11-02 08:43:51 浏览: 134
这个错误说明你的系统中没有找到 `tshark` 工具,它是 Wireshark 的命令行版本,`pyshark` 库需要依赖于它来进行网络数据包的捕获和分析。
要解决这个问题,你需要先安装 Wireshark 并确保 `tshark` 工具可用。下面是一些常见操作系统上安装 Wireshark 的方法:
- **Windows**: 在 Wireshark 官方网站上下载并安装 Wireshark,安装过程中会自动安装 `tshark` 工具。
- **Mac**: 使用 Homebrew 命令来安装 Wireshark,打开终端并运行以下命令:
```bash
brew install wireshark
```
- **Linux**: 在终端中运行适合你的发行版的命令来安装 Wireshark。例如,在 Ubuntu 上运行以下命令:
```bash
sudo apt-get install wireshark
```
安装完成后,确认 `tshark` 工具是否可用。你可以在终端中运行 `tshark --version` 命令来检查。
如果 `tshark` 工具已经安装并且可以正常使用,那么你可以尝试重新运行你的 Python 代码,这样就不会再出现 `TSharkNotFoundException` 错误了。
相关问题
Windows查看Wireshark tshark.exe
回答: 要在Windows上查看Wireshark的tshark.exe文件,你可以按照以下步骤进行操作。首先,检查你的Wireshark安装路径是否与默认路径不同。如果是的话,你需要修改config.ini文件中的tshark_path参数来指定tshark.exe的路径。config.ini文件通常位于Python安装路径的\Lib\site-packages\pyshark目录中。在修改config.ini文件之前,建议先备份原始文件以防万一。你可以将tshark_path参数修改为你实际安装Wireshark的路径,然后保存文件。这样,当你使用pyshark库时,它将能够找到正确的tshark.exe文件并避免报错。\[1\]
另外,如果你只是想在Windows上使用tshark.exe来获取特定IP的单个数据包,你可以打开命令提示符并输入以下命令:
"c:\Program Files\Wireshark\tshark.exe" -r 输入的文件 -Y "ip.addr==127.0.0.1" -w 输出的文件
请注意,这条命令只适用于针对单个数据包进行过滤。你需要将输入的文件替换为你要分析的数据包文件的路径,将输出的文件替换为你想要保存结果的文件路径。执行命令后,tshark将根据指定的IP地址过滤数据包,并将结果保存到指定的输出文件中。\[2\]
#### 引用[.reference_title]
- *1* [wireshark和pyshark关于tshark.exe目录的问题](https://blog.csdn.net/qq_47875210/article/details/127694057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Windows使用 tshark.exe 提取特定IP数据包](https://blog.csdn.net/weixin_35725726/article/details/82585202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
subprocess.run()怎么用tshark抓包
你可以使用subprocess.run()函数调用tshark命令行工具进行抓包。下面是一个简单的示例代码,它可以使用tshark抓取一个网卡上的数据包并将其输出到控制台:
```python
import subprocess
# 调用tshark命令行工具抓包
proc = subprocess.run(['tshark', '-i', 'eth0'], stdout=subprocess.PIPE)
# 输出抓包结果
print(proc.stdout.decode('utf-8'))
```
在上面的代码中,`subprocess.run()`函数的第一个参数是一个包含tshark命令及其参数的列表。在这个例子中,我们使用了`-i`参数指定要抓取的网卡的名称为`eth0`。`stdout=subprocess.PIPE`参数用于将命令的输出捕获到一个变量中。
你也可以根据自己的需要调整`tshark`命令的参数,例如可以使用`-f`参数指定过滤器来只抓取符合条件的数据包,或使用`-w`参数将抓包结果保存到一个文件中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)