├── run.bat
├── server
├── db
│ └── db.sqlite
├── static
│ ├── img
│ │ ├── bg.gif
│ │ ├── Thumbs.db
│ │ ├── file.gif
│ │ ├── folder.gif
│ │ ├── minus.gif
│ │ ├── plus.gif
│ │ ├── favicon.png
│ │ ├── loading.gif
│ │ ├── up-arrow.jpg
│ │ ├── up-arrow.png
│ │ ├── ajax-loader.gif
│ │ ├── down-arrow.png
│ │ ├── folder-closed.gif
│ │ ├── treeview-gray.gif
│ │ ├── treeview-red.gif
│ │ ├── treeview-black.gif
│ │ ├── treeview-default.gif
│ │ ├── treeview-famfamfam.gif
│ │ ├── treeview-gray-line.gif
│ │ ├── treeview-red-line.gif
│ │ ├── treeview-black-line.gif
│ │ ├── treeview-default-line.gif
│ │ └── treeview-famfamfam-line.gif
│ ├── themes
│ │ ├── basic
│ │ │ └── assets
│ │ │ │ └── fonts
│ │ │ │ ├── icons.eot
│ │ │ │ ├── icons.ttf
│ │ │ │ └── icons.woff
│ │ └── default
│ │ │ └── assets
│ │ │ ├── fonts
│ │ │ ├── icons.eot
│ │ │ ├── icons.otf
│ │ │ ├── icons.ttf
│ │ │ └── icons.woff
│ │ │ └── images
│ │ │ └── flags.png
│ ├── css
│ │ ├── home.css
│ │ ├── jquery.fileupload.css
│ │ └── jquery.treeview.css
│ ├── components
│ │ ├── sticky.min.css
│ │ ├── tab.min.css
│ │ ├── rail.min.css
│ │ ├── breadcrumb.min.css
│ │ ├── site.min.css
│ │ ├── video.min.css
│ │ ├── nag.min.css
│ │ ├── shape.min.css
│ │ ├── sticky.css
│ │ ├── ad.min.css
│ │ ├── tab.css
│ │ ├── reset.min.css
│ │ ├── dimmer.min.css
│ │ ├── breadcrumb.css
│ │ ├── comment.min.css
│ │ ├── rail.css
│ │ ├── image.min.css
│ │ ├── video.css
│ │ ├── popup.min.css
│ │ ├── site.css
│ │ ├── divider.min.css
│ │ ├── colorize.min.js
│ │ ├── feed.min.css
│ │ ├── loader.min.css
│ │ ├── nag.css
│ │ ├── shape.css
│ │ └── search.min.css
│ └── js
│ │ ├── jquery.treeview.edit.js
│ │ ├── jquery.json.min.js
│ │ ├── analyze.js
│ │ ├── fixtableheader.js
│ │ ├── jquery.livequery.min.js
│ │ └── jquery.treeview.async.js
├── pcapfile
│ ├── 20151019_2254_111.pcap
│ ├── 20151019_2256_222.pcap
│ ├── 20151129_1416_wdjupload.pcap
│ └── 20151028_1047_58_and_start.pcap
├── test.py
├── pair
│ ├── 021c1dac81b2967b6cce5000565a23aa04ef_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045712.txt
│ ├── 021c1dac81b2967b6cce5000565a23aa04f0_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045714.txt
│ ├── 02bb15ac532161b443865000564139bc0149_10_0001_01_0_564139bc_BaiduSDK_device-0_141_0009036.txt
│ ├── 02bb15ac532161b443865000564139bc0149_10_0001_01_1_564139bc_BaiduSDK_device-0_141_0009035.txt
│ ├── 02bb15ac532161b46ec25000564139bc014a_10_0001_01_0_564139bc_BaiduSDK_device-0_141_0009038.txt
│ └── 02bb15ac532161b46ec25000564139bc014a_10_0001_01_1_564139bc_BaiduSDK_device-0_141_0009037.txt
├── cfg
│ └── yj_hp_in.conf
├── decode_utils.py
├── regex_util.py
├── conf
│ └── interface.json
├── __init__.py
├── DeviceOperation.py
├── templates
│ ├── gen_1.html
│ ├── library.html
│ ├── template.xml
│ └── base.html
├── userInfoOperation.py
└── ChangeAtoB.py
├── img
├── pcap-analyzer-01.png
├── pcap-analyzer-02.png
├── pcap-analyzer-03.png
├── pcap-analyzer-04.png
├── pcap-analyzer-05.png
├── pcap-analyzer-06.png
├── pcap-analyzer-07.png
└── pcap-analyzer-08.png
├── pcap-analyzer-master
├── run.sh
├── run.bat
├── server
│ ├── db
│ │ └── db.sqlite
│ ├── static
│ │ ├── img
│ │ │ └── favicon.png
│ │ ├── themes
│ │ │ ├── basic
│ │ │ │ └── assets
│ │ │ │ │ └── fonts
│ │ │ │ │ ├── icons.eot
│ │ │ │ │ ├── icons.ttf
│ │ │ │ │ └── icons.woff
│ │ │ └── default
│ │ │ │ └── assets
│ │ │ │ ├── fonts
│ │ │ │ ├── icons.eot
│ │ │ │ ├── icons.otf
│ │ │ │ ├── icons.ttf
│ │ │ │ └── icons.woff
│ │ │ │ └── images
│ │ │ │ └── flags.png
│ │ ├── css
│ │ │ ├── home.css
│ │ │ └── jquery.fileupload.css
│ │ ├── components
│ │ │ ├── sticky.min.css
│ │ │ ├── tab.min.css
│ │ │ ├── rail.min.css
│ │ │ ├── breadcrumb.min.css
│ │ │ ├── site.min.css
│ │ │ ├── video.min.css
│ │ │ ├── nag.min.css
│ │ │ ├── shape.min.css
│ │ │ ├── sticky.css
│ │ │ ├── ad.min.css
│ │ │ ├── tab.css
│ │ │ ├── reset.min.css
│ │ │ ├── dimmer.min.css
│ │ │ ├── breadcrumb.css
│ │ │ ├── comment.min.css
│ │ │ ├── rail.css
│ │ │ ├── image.min.css
│ │ │ ├── video.css
│ │ │ ├── popup.min.css
│ │ │ ├── site.css
│ │ │ ├── divider.min.css
│ │ │ ├── colorize.min.js
│ │ │ ├── feed.min.css
│ │ │ ├── loader.min.css
│ │ │ ├── nag.css
│ │ │ ├── shape.css
│ │ │ └── search.min.css
│ │ └── js
│ │ │ ├── analyze.js
│ │ │ ├── fixtableheader.js
│ │ │ └── upload.js
│ ├── pcapfile
│ │ ├── 20151019_2254_111.pcap
│ │ └── 20151019_2256_222.pcap
│ ├── __init__.py
│ ├── templates
│ │ ├── library.html
│ │ ├── base.html
│ │ └── upload.html
│ └── views.py
├── img
│ ├── pcap-analyzer-01.png
│ ├── pcap-analyzer-02.png
│ ├── pcap-analyzer-03.png
│ ├── pcap-analyzer-04.png
│ ├── pcap-analyzer-05.png
│ ├── pcap-analyzer-06.png
│ ├── pcap-analyzer-07.png
│ └── pcap-analyzer-08.png
├── requirements.txt
├── app.py
├── readme2.md
└── readme.md
├── run.sh
├── requirements.txt
├── app.py
├── tests
├── test_gevent.py
├── test_mutlithreading.py
├── testJson.py
└── testParseLocation.py
├── readme2.md
├── .gitignore
└── readme.md
/run.bat:
--------------------------------------------------------------------------------
1 | python app.py
2 |
--------------------------------------------------------------------------------
/server/db/db.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/db/db.sqlite
--------------------------------------------------------------------------------
/img/pcap-analyzer-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-01.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-02.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-03.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-04.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-05.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-06.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-07.png
--------------------------------------------------------------------------------
/img/pcap-analyzer-08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/img/pcap-analyzer-08.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/run.sh:
--------------------------------------------------------------------------------
1 | # python -c "import os;os.remove('server/pcapfile/.gitkeep')"
2 | python app.py
3 |
--------------------------------------------------------------------------------
/server/static/img/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/bg.gif
--------------------------------------------------------------------------------
/pcap-analyzer-master/run.bat:
--------------------------------------------------------------------------------
1 | % python -c "import os;os.remove('server/pcapfile/.gitkeep')" %
2 | python app.py
3 |
--------------------------------------------------------------------------------
/run.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # python -c "import os;os.remove('server/pcapfile/.gitkeep')"
3 | python app.py
4 |
--------------------------------------------------------------------------------
/server/static/img/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/Thumbs.db
--------------------------------------------------------------------------------
/server/static/img/file.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/file.gif
--------------------------------------------------------------------------------
/server/static/img/folder.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/folder.gif
--------------------------------------------------------------------------------
/server/static/img/minus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/minus.gif
--------------------------------------------------------------------------------
/server/static/img/plus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/plus.gif
--------------------------------------------------------------------------------
/server/static/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/favicon.png
--------------------------------------------------------------------------------
/server/static/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/loading.gif
--------------------------------------------------------------------------------
/server/static/img/up-arrow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/up-arrow.jpg
--------------------------------------------------------------------------------
/server/static/img/up-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/up-arrow.png
--------------------------------------------------------------------------------
/server/static/img/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/ajax-loader.gif
--------------------------------------------------------------------------------
/server/static/img/down-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/down-arrow.png
--------------------------------------------------------------------------------
/server/static/img/folder-closed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/folder-closed.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-gray.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-gray.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-red.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-red.gif
--------------------------------------------------------------------------------
/server/pcapfile/20151019_2254_111.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pcapfile/20151019_2254_111.pcap
--------------------------------------------------------------------------------
/server/pcapfile/20151019_2256_222.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pcapfile/20151019_2256_222.pcap
--------------------------------------------------------------------------------
/server/static/img/treeview-black.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-black.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-default.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-default.gif
--------------------------------------------------------------------------------
/server/test.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | from autogen import read_pair
4 |
5 | print(read_pair('pair'))
6 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/db/db.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/db/db.sqlite
--------------------------------------------------------------------------------
/server/static/img/treeview-famfamfam.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-famfamfam.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-gray-line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-gray-line.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-red-line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-red-line.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-black-line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-black-line.gif
--------------------------------------------------------------------------------
/server/static/img/treeview-default-line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-default-line.gif
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-01.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-02.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-03.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-04.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-05.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-06.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-07.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/img/pcap-analyzer-08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/img/pcap-analyzer-08.png
--------------------------------------------------------------------------------
/server/pcapfile/20151129_1416_wdjupload.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pcapfile/20151129_1416_wdjupload.pcap
--------------------------------------------------------------------------------
/server/static/img/treeview-famfamfam-line.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/img/treeview-famfamfam-line.gif
--------------------------------------------------------------------------------
/pcap-analyzer-master/requirements.txt:
--------------------------------------------------------------------------------
1 | Flask==0.10.1
2 | Werkzeug==0.9.4
3 | pyshark==0.3.3
4 | chartkick==0.4.2
5 | Logbook==0.7.0
6 | gevent
7 | simplejson
--------------------------------------------------------------------------------
/server/pcapfile/20151028_1047_58_and_start.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pcapfile/20151028_1047_58_and_start.pcap
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/img/favicon.png
--------------------------------------------------------------------------------
/server/static/themes/basic/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/basic/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/server/static/themes/basic/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/basic/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/server/static/themes/basic/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/basic/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/server/static/themes/default/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/default/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/server/static/themes/default/assets/fonts/icons.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/default/assets/fonts/icons.otf
--------------------------------------------------------------------------------
/server/static/themes/default/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/default/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/server/static/themes/default/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/default/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/server/static/themes/default/assets/images/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/static/themes/default/assets/images/flags.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | Flask==0.10.1
2 | Werkzeug==0.9.4
3 | pyshark==0.3.3
4 | chartkick==0.4.2
5 | Logbook==0.7.0
6 | simplejson
7 | Flask-SQLAlchemy==2.1
8 | scapy
9 | gevent
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/pcapfile/20151019_2254_111.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/pcapfile/20151019_2254_111.pcap
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/pcapfile/20151019_2256_222.pcap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/pcapfile/20151019_2256_222.pcap
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/basic/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.otf
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/default/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/themes/default/assets/images/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/pcap-analyzer-master/server/static/themes/default/assets/images/flags.png
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/css/home.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: #E9E9E9;
3 | background-image: url(/../img/2.gif);
4 | }
5 |
6 | #wrapper{
7 | margin-top:3.5rem;
8 | margin-left:10rem;
9 | margin-right:10rem;
10 | }
--------------------------------------------------------------------------------
/server/pair/021c1dac81b2967b6cce5000565a23aa04ef_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045712.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pair/021c1dac81b2967b6cce5000565a23aa04ef_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045712.txt
--------------------------------------------------------------------------------
/server/pair/021c1dac81b2967b6cce5000565a23aa04f0_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045714.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhangxinqian/pcap-analyzer/HEAD/server/pair/021c1dac81b2967b6cce5000565a23aa04f0_10_0001_01_0_565a23a9_WanDouJia_device-0_141_0045714.txt
--------------------------------------------------------------------------------
/server/cfg/yj_hp_in.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 | from server import app
5 | #如应用于生产环境 app.run(host='0.0.0.0', port=80) 并注意可能存在的安全隐患.
6 | #有些情况下 localhost 会出问题,本地需要添加一个 hosts 。
7 | if __name__ == '__main__':
8 | app.run(host='127.0.0.1', port=8080, debug=True)
9 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/app.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 | from server import app
5 | #如应用于生产环境 app.run(host='0.0.0.0', port=80) 并注意可能存在的安全隐患.
6 | #有些情况下 localhost 会出问题,本地需要添加一个 hosts 。
7 | if __name__ == '__main__':
8 | app.run(host='127.0.0.1', port=8080, debug=True)
9 |
--------------------------------------------------------------------------------
/server/pair/02bb15ac532161b443865000564139bc0149_10_0001_01_0_564139bc_BaiduSDK_device-0_141_0009036.txt:
--------------------------------------------------------------------------------
1 | HTTP/1.1 200 OK
2 | Cache-Control: max-age=86400
3 | Content-Length: 26
4 | Content-Type: text/plain
5 | Date: Fri, 08 May 2015 02:51:01 GMT
6 | Expires: Sat, 09 May 2015 02:51:01 GMT
7 | Http_x_bd_logid: 1001157098
8 | Http_x_bd_logid64: 5883167911097030757
9 | Server: apache
10 |
11 | {"ctr":"196619","ver":"0"}
--------------------------------------------------------------------------------
/tests/test_gevent.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | from gevent import monkey;
4 |
5 | monkey.patch_all()
6 |
7 |
8 | def A():
9 | with open('../server/conf/interface.json') as f:
10 | print(f.read())
11 |
12 |
13 | def B():
14 | with open('../server/func.py') as f:
15 | print(f.read())
16 |
17 |
18 | import gevent
19 |
20 | gevent.joinall([gevent.spawn(A),
21 | gevent.spawn(B)])
22 |
--------------------------------------------------------------------------------
/server/decode_utils.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | import zlib
4 | import codecs
5 |
6 |
7 | def decode_gzip(data):
8 | decode_data = zlib.decompress(data, 16 | zlib.MAX_WBITS)
9 |
10 |
11 | def encode_url_utf8(data):
12 | hex_data = codecs.encode(data, 'hex')
13 | ret = ''
14 | for i, v in enumerate(hex_data):
15 | if i % 2 == 0:
16 | ret += r'%'
17 | ret += v
18 | return ret
19 |
--------------------------------------------------------------------------------
/server/regex_util.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | import re
4 |
5 |
6 | class RegexUtil:
7 | def __init__(self, infolist):
8 | self.reged = []
9 | for info in infolist:
10 | self.reged.append(re.compile(info))
11 |
12 | def match_lng_and_lat(self, http_data):
13 | for rege in self.reged:
14 | if rege.search(http_data):
15 | return True
16 |
17 | return False
18 |
--------------------------------------------------------------------------------
/server/conf/interface.json:
--------------------------------------------------------------------------------
1 | {
2 | "LBS": [
3 | "IMEI",
4 | "IMSI",
5 | "DESC",
6 | "LAT",
7 | "LNG",
8 | "RADUIS"
9 | ],
10 | "INFO_LBS": [
11 | "sourcefrom",
12 | "coordtype"
13 | ],
14 | "INFO_TXL": [
15 | "sourcefrom"
16 | ],
17 | "TXL": [
18 | "contact_split",
19 | "info_split",
20 | "NAME",
21 | "NICKNAME",
22 | "NOTE",
23 | "RELATION",
24 | "ORG",
25 | "MOBILE",
26 | "EMAIL",
27 | "ADDR"
28 | ]
29 | }
--------------------------------------------------------------------------------
/server/pair/02bb15ac532161b443865000564139bc0149_10_0001_01_1_564139bc_BaiduSDK_device-0_141_0009035.txt:
--------------------------------------------------------------------------------
1 | POST /sdk.php HTTP/1.1
2 | Content-Type: application/x-www-form-urlencoded; charset=utf-8
3 | Accept-Charset: UTF-8;
4 | Content-Length: 169
5 | Host: loc.map.baidu.com
6 | Connection: Keep-Alive
7 | User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
8 |
9 | qt=conf&req=6rihufb76Lyw4frmor_3u53oucrry-3k5pOU65Ht7OOo2NLc3N-tr9b31ISE8tHUg8uanMmayczBx8XEw8nDyfDN6-Tn--_to-u16eGOs6mrva246_T68v655eb2-7Ph3sHAlvjv5ZuNwwTiW3u1%7Ctp%3D3
--------------------------------------------------------------------------------
/readme2.md:
--------------------------------------------------------------------------------
1 | ### 开发工具:
2 | pycharm
3 |
4 | ### 开发语言:
5 | python 2.7
6 |
7 | ### 安装装运行:
8 | - Linux:
9 | - $ pip install -r requirements.txt
10 | - $ python app.py
11 | - View http://localhost:8080/
12 |
13 | - Window:
14 | - Pycharm 导入github 库
15 | - 还需要安装3个编译库,参考下面文档
16 | - https://github.com/Kondziowy/scapy_win64/tree/master/win64
17 | - https://github.com/CoreSecurity/pcapy/wiki/Compiling-Pcapy-on-Windows-Guide
18 |
19 |
20 |
21 | ### 项目参考:
22 | http://le4f.net/post/post/pcap-online-analyzer
23 |
--------------------------------------------------------------------------------
/tests/test_mutlithreading.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | import threading
4 |
5 |
6 | def A():
7 | with open('../server/conf/interface.json') as f:
8 | s = ''
9 | while s != 'Null':
10 | s = f.readline()
11 | print(s)
12 |
13 |
14 | def B():
15 | with open('../server/func.py') as f:
16 | s = ''
17 | while s != 'Null':
18 | s = f.readline()
19 | print(s)
20 |
21 |
22 | ta = threading.Thread(target=A)
23 | tb = threading.Thread(target=B)
24 | ta.start()
25 | tb.start()
26 | ta.join()
27 | tb.join()
28 |
--------------------------------------------------------------------------------
/server/static/css/home.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: #E9E9E9;
3 | }
4 |
5 | #wrapper {
6 | margin-top: 3.5rem;
7 | margin-left: 10rem;
8 | margin-right: 10rem;
9 | }
10 |
11 | #browser li :hover {
12 | cursor: pointer;
13 | }
14 |
15 | #pathtonode {
16 | position: fixed;
17 | bottom: 0px;
18 | right: 0px;
19 | background-color: #F2F1E8;
20 | padding: 5px;
21 | }
22 |
23 |
24 | #accumpaths {
25 | list-style-type: none;
26 | display: block;
27 | width: 600px;
28 | }
29 |
30 | #accumpaths li {
31 | float: left;
32 | }
33 |
34 | #accumpaths a {
35 | padding-left: 5px;
36 | }
--------------------------------------------------------------------------------
/server/pair/02bb15ac532161b46ec25000564139bc014a_10_0001_01_0_564139bc_BaiduSDK_device-0_141_0009038.txt:
--------------------------------------------------------------------------------
1 | HTTP/1.1 200 OK
2 | Cache-Control: max-age=86400
3 | Content-Length: 284
4 | Content-Type: text/plain
5 | Date: Fri, 08 May 2015 02:51:01 GMT
6 | Expires: Sat, 09 May 2015 02:51:01 GMT
7 | Http_x_bd_logid: 786649265
8 | Http_x_bd_logid64: 16558996061297821993
9 | Server: apache
10 |
11 | {"content":{"addr":"上海市,上海市,普陀区,共青路,,289,中国,0","bldg":"","clf":"121.403753|31.227739|2000.000000","floor":"","indoor":"40","point":{"x":"121.403368","y":"31.228084"},"radius":"67.625394","ssid":"2047"},"result":{"error":"161","time":"2015-05-08 10:51:01"}}
--------------------------------------------------------------------------------
/tests/testJson.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 |
4 |
5 | import simplejson as json
6 |
7 | def as_complex(dct):
8 | if '__complex__' in dct:
9 | return complex(dct['real'], dct['imag'])
10 | return dct
11 |
12 |
13 | # j = json.loads('{"__complex__": true, "real": 1, "imag": 2}', object_hook=as_complex)
14 | # print(j)
15 |
16 | j = json.loads(
17 | '{"content":{"addr":"上海市,上海市,普陀区,共青路,,289,中国,0","bldg":"","clf":"121.403753|31.227739|2000.000000","floor":"","indoor":"40","point":{"x":"121.403368","y":"31.228084"},"radius":"67.625394","ssid":"2047"},"result":{"error":"161","time":"2015-05-08 10:51:01"}}')
18 | print(j)
19 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 |
5 | from flask import Flask, request, redirect, url_for, send_file, render_template, g
6 | from werkzeug.utils import secure_filename
7 | from cStringIO import StringIO
8 | from collections import Counter
9 | from scapy.all import *
10 | import os,sys,time,math,re
11 | import simplejson,sqlite3
12 | import pyshark
13 | import chartkick
14 |
15 | UPLOAD_FOLDER = 'server/pcapfile/'
16 | ALLOWED_EXTENSIONS = set(['pcap','pcapng','cap'])
17 | DATABASE = 'server/db/db.sqlite'
18 |
19 | app = Flask(__name__)
20 | app.jinja_env.add_extension("chartkick.ext.charts")
21 |
22 | import views
23 | import func
--------------------------------------------------------------------------------
/pcap-analyzer-master/readme2.md:
--------------------------------------------------------------------------------
1 | ### 开发工具:
2 | pycharm
3 |
4 | ### 开发语言:
5 | python 2.7
6 |
7 | ### 安装装运行:
8 | - Linux:
9 | - $ git clone https://github.com/Baoyx007/pcap-analyzer
10 | - $ cd pcap-analyzer'
11 | - $ pip install -r requirements.txt
12 | - $ python app.py
13 | - View http://localhost:8080/
14 |
15 | - Window:
16 | - Pycharm 导入github 库
17 | - 还需要安装3个编译库,参考下面文档
18 | - https://github.com/Kondziowy/scapy_win64/tree/master/win64
19 | - https://github.com/CoreSecurity/pcapy/wiki/Compiling-Pcapy-on-Windows-Guide
20 |
21 |
22 |
23 | ### 项目github地址:
24 | https://github.com/Baoyx007/pcap-analyzer
25 |
26 | ### 项目参考:
27 | http://le4f.net/post/post/pcap-online-analyzer
28 |
--------------------------------------------------------------------------------
/server/static/components/sticky.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.sticky{position:static;-webkit-transition:width .2s ease,height .2s ease,top .2s ease,bottom .2s ease;transition:width .2s ease,height .2s ease,top .2s ease,bottom .2s ease;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/sticky.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.sticky{position:static;-webkit-transition:width .2s ease,height .2s ease,top .2s ease,bottom .2s ease;transition:width .2s ease,height .2s ease,top .2s ease,bottom .2s ease;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
--------------------------------------------------------------------------------
/server/static/css/jquery.fileupload.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | /*
3 | * jQuery File Upload Plugin CSS 1.3.0
4 | * https://github.com/blueimp/jQuery-File-Upload
5 | *
6 | * Copyright 2013, Sebastian Tschan
7 | * https://blueimp.net
8 | *
9 | * Licensed under the MIT license:
10 | * http://www.opensource.org/licenses/MIT
11 | */
12 |
13 | .fileinput-button {
14 | position: relative;
15 | overflow: hidden;
16 | }
17 | .fileinput-button input {
18 | position: absolute;
19 | top: 0;
20 | right: 0;
21 | margin: 0;
22 | opacity: 0;
23 | -ms-filter: 'alpha(opacity=0)';
24 | font-size: 200px;
25 | direction: ltr;
26 | cursor: pointer;
27 | }
28 |
29 | /* Fixes for IE < 8 */
30 | @media screen\9 {
31 | .fileinput-button input {
32 | filter: alpha(opacity=0);
33 | font-size: 100%;
34 | height: 100%;
35 | }
36 | }
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/css/jquery.fileupload.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | /*
3 | * jQuery File Upload Plugin CSS 1.3.0
4 | * https://github.com/blueimp/jQuery-File-Upload
5 | *
6 | * Copyright 2013, Sebastian Tschan
7 | * https://blueimp.net
8 | *
9 | * Licensed under the MIT license:
10 | * http://www.opensource.org/licenses/MIT
11 | */
12 |
13 | .fileinput-button {
14 | position: relative;
15 | overflow: hidden;
16 | }
17 | .fileinput-button input {
18 | position: absolute;
19 | top: 0;
20 | right: 0;
21 | margin: 0;
22 | opacity: 0;
23 | -ms-filter: 'alpha(opacity=0)';
24 | font-size: 200px;
25 | direction: ltr;
26 | cursor: pointer;
27 | }
28 |
29 | /* Fixes for IE < 8 */
30 | @media screen\9 {
31 | .fileinput-button input {
32 | filter: alpha(opacity=0);
33 | font-size: 100%;
34 | height: 100%;
35 | }
36 | }
--------------------------------------------------------------------------------
/server/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 |
5 | from flask import Flask, request, redirect, url_for, send_file, render_template, g, make_response
6 | from werkzeug.utils import secure_filename
7 | from cStringIO import StringIO
8 | from collections import Counter
9 | from scapy.all import *
10 | import os, sys, time, math, re
11 | import simplejson, sqlite3
12 | import pyshark
13 | import chartkick
14 | from flask.ext.sqlalchemy import SQLAlchemy
15 |
16 | UPLOAD_FOLDER = 'server/pcapfile/'
17 | ALLOWED_EXTENSIONS = set(['pcap', 'pcapng', 'cap'])
18 | DATABASE = 'server/db/db.sqlite'
19 |
20 | app = Flask(__name__)
21 | app.jinja_env.add_extension("chartkick.ext.charts")
22 | app.config.from_object(__name__)
23 | app.secret_key = '\xac=\x0f\xee\x88\x9f\xb9\xfaF\x04\x93\xc2\x12\xc2\x9fG\t\xa1\xf2t\x80\xe5\x1c['
24 | # print(__name__)
25 | import views
26 | import func
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | env/
12 | build/
13 | develop-eggs/
14 | dist/
15 | downloads/
16 | eggs/
17 | .eggs/
18 | lib/
19 | lib64/
20 | parts/
21 | sdist/
22 | var/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 |
27 | # PyInstaller
28 | # Usually these files are written by a python script from a template
29 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
30 | *.manifest
31 | *.spec
32 |
33 | # Installer logs
34 | pip-log.txt
35 | pip-delete-this-directory.txt
36 |
37 | # Unit test / coverage reports
38 | htmlcov/
39 | .tox/
40 | .coverage
41 | .coverage.*
42 | .cache
43 | nosetests.xml
44 | coverage.xml
45 | *,cover
46 | .hypothesis/
47 |
48 | # Translations
49 | *.mo
50 | *.pot
51 |
52 | # Django stuff:
53 | *.log
54 |
55 | # Sphinx documentation
56 | docs/_build/
57 |
58 | # PyBuilder
59 | target/
60 |
61 | # pycharm
62 | .idea/
--------------------------------------------------------------------------------
/server/static/components/tab.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/tab.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}
--------------------------------------------------------------------------------
/server/pair/02bb15ac532161b46ec25000564139bc014a_10_0001_01_1_564139bc_BaiduSDK_device-0_141_0009037.txt:
--------------------------------------------------------------------------------
1 |
2 | POST /sdk.php HTTP/1.1
3 | Content-Type: application/x-www-form-urlencoded; charset=utf-8
4 | Accept-Charset: UTF-8;
5 | Content-Length: 804
6 | Host: loc.map.baidu.com
7 | Connection: Keep-Alive
8 | User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
9 |
10 | bloc=vaXrpai6qPGv8vf9vvXpp-7nvurz7O7p4erqtOjwtujkmIGL3pqI0e2S3NzW1oSDyMSYypfJzszRnJ_VxoqJ2Ke75_7sr7bo9PHnsLHm4eX5r_yu9qmsqaytpvrnr_b2yp2dyJ7JmcyXnZKbmdnFkNmO1YndjIvajo-I1IKNyYcreHooKn58eSt_d3Z0cS5vZDQ-bjk_aTpjOWcxYGFjP0deCgpcBFwJVgRRC1teAgtGCxpLS0ZKTxIZFUMaRk4TYjAgbW4_bWg3N2I-ZzdiaCoud2N8Jikpcyl3cHolIXVAE09DU08TT0BCF0kTREZHDQxUDFRCCAMFDVdXXwdUqK76pqf6pOzl9Zqu9_Lg4-qDp_nlvvutsom5prvr4eeKit2Oi9uH0oeDw5OOiNuAgszSzJzKj8eVmpDUxZWahua967fvvPnpp-7Hs7_Btpb4paGJ3vbYra2k2KTwraKguLyducyazenEwNmQnJeUx9yNht2P2YqJgo6a34SH9tt0djh8e24neCskGnRkd2BmaS89aWU_bnw7JWETN2NzJ00HXBMLQA1MUV1YU1hFFkZDGEl-PGVPVERMHx1LVAIBOTt0ezFtYidjLygxdjY2Ks9p91P.%7Ctp%3D3&ext=6vSn8YnaqKvzofGj9aeloO247-y-67S56OHnsbjh5ebbjI_ezsuD0Nf12tOC3vPXlL7LxJ_ry8-1zLKxm8XhyrTttLvM4ri0uJG1uOPG6MePptuv9I3UpabUq6SDq_TTlrnsl8uXwIPVhcLD1aKu3rb.%7Ctp%3D3
--------------------------------------------------------------------------------
/server/static/components/rail.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.rail{position:absolute;top:0;width:300px;box-sizing:content-box}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(39,41,43,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(39,41,43,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.rail{font-size:1em}
--------------------------------------------------------------------------------
/tests/testParseLocation.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | __author__ = 'PCPC'
3 | from server.autogen import *
4 |
5 | j = r'''
6 | {"reqeuestBody":[
7 | {
8 | "infoname": "IMEI",
9 | "value": "loc.map.baidu.com",
10 | "regex": "[^\"\\r\\n]+"
11 | }
12 | ],
13 | "responsebody": [
14 | {
15 | "infoname": "PositionDesc",
16 | "value": "content~addr~上海市,上海市,普陀区,共青路,,289,中国,0",
17 | "regex": "[^\"\\r\\n]+"
18 | },
19 | {
20 | "infoname": "PositionAcc",
21 | "value": "content~radius~67.625394",
22 | "regex": "[^\"\\r\\n]+"
23 | },
24 | {
25 | "infoname": "PositionLng",
26 | "value": "content~point~x~121.403368",
27 | "regex": "[^\"\\r\\n]+"
28 | },
29 | {
30 | "infoname": "PositionLat",
31 | "value": "content~point~y~31.228084",
32 | "regex": "[^\"\\r\\n]+"
33 | }
34 | ]
35 | }
36 | '''
37 | print(parse_locations(j))
38 |
--------------------------------------------------------------------------------
/server/static/components/breadcrumb.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.breadcrumb{margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.5;margin:0 .2rem;font-size:.9em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#009fda}.ui.breadcrumb a:hover{color:#00b2f3}.ui.breadcrumb .icon.divider{font-size:.7em;vertical-align:middle}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.5em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.65em}.ui.tiny.breadcrumb{font-size:.7em}.ui.small.breadcrumb{font-size:.75em}.ui.breadcrumb{font-size:1em}.ui.large.breadcrumb{font-size:1.1em}.ui.big.breadcrumb{font-size:1.05em}.ui.huge.breadcrumb{font-size:1.3em}.ui.massive.breadcrumb{font-size:1.5em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/rail.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.rail{position:absolute;top:0;width:300px;box-sizing:content-box}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(39,41,43,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(39,41,43,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.rail{font-size:1em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/breadcrumb.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.breadcrumb{margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.5;margin:0 .2rem;font-size:.9em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#009fda}.ui.breadcrumb a:hover{color:#00b2f3}.ui.breadcrumb .icon.divider{font-size:.7em;vertical-align:middle}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.5em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.65em}.ui.tiny.breadcrumb{font-size:.7em}.ui.small.breadcrumb{font-size:.75em}.ui.breadcrumb{font-size:1em}.ui.large.breadcrumb{font-size:1.1em}.ui.big.breadcrumb{font-size:1.05em}.ui.huge.breadcrumb{font-size:1.3em}.ui.massive.breadcrumb{font-size:1.5em}
--------------------------------------------------------------------------------
/server/DeviceOperation.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 | from server import *
5 | import unittest
6 | import sqlite3
7 | import func
8 | __author__ = 'hx'
9 | class DeviceInfo:
10 | def __init__(self):
11 | self.db=func.connect_db()
12 | def closeDB(self):
13 | self.db.commit()
14 | self.db.close()
15 | def addDeviceInfo(self,device_id='',device_name='',device_imei='',device_os='',device_SerialNumber=''):
16 | self.db.cursor().execute("insert into deviceInfo(device_id,device_name,device_imei,device_os,device_SerialNumber) values(?,?,?,?,?)",(device_id,device_name,device_imei,device_os,device_SerialNumber))
17 | DeviceInfo.closeDB(self)
18 | def deleteDeviceInfo(self,device_no):
19 | self.db.execute("delete from deviceInfo where device_no=?",device_no)
20 | DeviceInfo.closeDB(self)
21 | def getDeviceInfo(self):
22 | cursor=self.db.execute("select * from deviceInfo deviceInfo")
23 | entries = [dict(device_no=row[0], device_id=row[1], device_name=row[2], device_imei=row[3],device_os=row[4],device_SerialNumber=row[5]) for row in cursor.fetchall()]
24 | DeviceInfo.closeDB(self)
25 | return entries
26 |
27 | # 获取数据库连接
28 |
29 |
--------------------------------------------------------------------------------
/server/static/components/site.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | @import 'http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic';*,:after,:before{box-sizing:border-box}body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;min-width:278px;background:#f7f7f7;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.33;color:rgba(0,0,0,.8);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.33em;margin:-webkit-calc(2rem - .165em) 0 1rem;margin:calc(2rem - .165em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.714rem}h3{font-size:1.28rem}h4{font-size:1.071rem}h5{font-size:1rem}p{margin:0 0 1em;line-height:1.33}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#009fda;text-decoration:none}a:hover{color:#00b2f3}::-webkit-selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}::-moz-selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}::selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}
--------------------------------------------------------------------------------
/server/static/components/video.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.video{background-color:#ddd;position:relative;max-width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;opacity:.8;-webkit-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;background:rgba(0,0,0,.3);width:8rem;height:8rem;line-height:8rem;border-radius:500rem;color:#fff;font-size:8rem;text-shadow:none;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.video .placeholder{position:absolute;top:0;left:0;display:block;width:100%;height:100%}.ui.video .embed embed,.ui.video .embed iframe,.ui.video .embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.video .play:hover{opacity:1}.ui.video.active .placeholder,.ui.video.active .play{display:none}.ui.video.active .embed{display:inline}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/site.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | @import 'http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic';*,:after,:before{box-sizing:border-box}body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;min-width:278px;background:#f7f7f7;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.33;color:rgba(0,0,0,.8);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.33em;margin:-webkit-calc(2rem - .165em) 0 1rem;margin:calc(2rem - .165em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.714rem}h3{font-size:1.28rem}h4{font-size:1.071rem}h5{font-size:1rem}p{margin:0 0 1em;line-height:1.33}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#009fda;text-decoration:none}a:hover{color:#00b2f3}::-webkit-selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}::-moz-selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}::selection{background-color:rgba(255,255,160,.4);color:rgba(0,0,0,.8)}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/video.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.video{background-color:#ddd;position:relative;max-width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;opacity:.8;-webkit-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;background:rgba(0,0,0,.3);width:8rem;height:8rem;line-height:8rem;border-radius:500rem;color:#fff;font-size:8rem;text-shadow:none;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.video .placeholder{position:absolute;top:0;left:0;display:block;width:100%;height:100%}.ui.video .embed embed,.ui.video .embed iframe,.ui.video .embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.video .play:hover{opacity:1}.ui.video.active .placeholder,.ui.video.active .play{display:none}.ui.video.active .embed{display:inline}
--------------------------------------------------------------------------------
/server/static/components/nag.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.8);border-radius:0 0 .2857rem .2857rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.2857rem .2857rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f0f0f0;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .2857rem .2857rem}.ui.bottom.nags .nag:last-child{border-radius:.2857rem .2857rem 0 0}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/nag.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.8);border-radius:0 0 .2857rem .2857rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.2857rem .2857rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f0f0f0;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .2857rem .2857rem}.ui.bottom.nags .nag:last-child{border-radius:.2857rem .2857rem 0 0}
--------------------------------------------------------------------------------
/server/templates/gen_1.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 | Information
7 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | | URL |
24 | HOST |
25 | TYPE |
26 | METHOD |
27 | NAME |
28 |
29 |
30 |
31 | {% for data in DataList %}
32 |
33 | | {{data['URL']}} |
34 | {{data['HOST']}} |
35 | {{data['TYPE']}} |
36 | {{data['METHOD']}} |
37 | {{data['NAME']}} |
38 |
39 | {% endfor %}
40 |
41 |
42 |
43 |
44 | Download
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | {% endblock %}
--------------------------------------------------------------------------------
/server/userInfoOperation.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 | from server import *
5 | import unittest
6 | import sqlite3
7 | import func
8 | __author__ = 'hx'
9 | class userInfo:
10 | def __init__(self):
11 | self.db=func.connect_db()
12 | def closeDB(self):
13 | self.db.commit()
14 | self.db.close()
15 | def addUserInfo(self,user_id='',user_name='',user_companyName='',
16 | user_Title='',user_mobile='',user_email='',user_groupName='',user_address='',user_nickname='',
17 | user_birthday='',user_notes=''):
18 | self.db.cursor().execute("insert into userInfo(user_name,user_companyName,user_Title,user_mobile,user_email,user_groupName,user_address,user_nickname,user_birthday,user_notes) values(?,?,?,?,?,?,?,?,?,?)",
19 | (user_name,user_companyName,user_Title,user_mobile,user_email,user_groupName,user_address,user_nickname,user_birthday,user_notes))
20 | userInfo.closeDB(self)
21 | def deleteUserInfo(self,user_id):
22 | self.db.execute("delete from userInfo where user_id=?",user_id)
23 | userInfo.closeDB(self)
24 | def getUserInfo(self):
25 | cursor=self.db.execute('select * from userInfo')
26 | entries = [dict(user_id=row[0], user_name=row[1], user_companyName=row[2],
27 | user_Title=row[3],user_mobile=row[4],user_email=row[5],
28 | user_groupName=row[6],user_address=row[7],user_nickname=row[8],
29 | user_birthday=row[9],user_notes=row[10]) for row in cursor.fetchall()]
30 | userInfo.closeDB(self)
31 | return entries
32 |
--------------------------------------------------------------------------------
/server/static/components/shape.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.shape{position:relative;display:inline-block;-webkit-perspective:2000px;perspective:2000px}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side>*{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.8);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;z-index:100}.ui.shape .hidden.side{opacity:.4}.ui.shape.animating{-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .sides{position:absolute;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/shape.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.shape{position:relative;display:inline-block;-webkit-perspective:2000px;perspective:2000px}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side>*{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.8);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;z-index:100}.ui.shape .hidden.side{opacity:.4}.ui.shape.animating{-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .sides{position:absolute;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
--------------------------------------------------------------------------------
/server/ChangeAtoB.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import os
3 |
4 |
5 | def OperateJson(data, wirter): # 解析json数据
6 | # 将字符串转换为dict
7 | dicts = eval(data);
8 | # print(dicts['NAME']);
9 | # dict的长度
10 | # print(len(dicts));
11 |
12 | resultStr = '\n';
13 | resultStr += ' ';
17 | else:
18 | resultStr += '" MSG_TYPE="AddressBook" ENCODING="HTML">';
19 | resultStr += ' \n';
20 |
21 | # print(resultStr);
22 | wirter.write(resultStr);
23 |
24 |
25 | def gen_1_xml(data):
26 | with open(os.path.join('.', "server/cfg/yj_hp_in.conf"), 'w') as writefile:
27 | arr = []; # 借助中间变量数组arr,将字典转换为字符串,然后去重
28 | # 添加标题
29 | resultStr = ''
30 | # dict遍历,在遍历字典数组的时候,进行字符串拼接
31 | for index in range(len(data)):
32 | arr.append(str(data[index]));
33 | # print(eval((list(set(arr)))[0])['NAME']);
34 | resultStr += '\n'
36 | writefile.write(resultStr)
37 | resultStr = ''
38 | for index in range(len((list(set(arr))))):
39 | OperateJson((list(set(arr)))[index], writefile);
40 | # print((list(set(arr)))[index]);
41 | resultStr += '\n'
42 | writefile.write(resultStr)
43 |
--------------------------------------------------------------------------------
/server/static/js/jquery.treeview.edit.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | var CLASSES = $.treeview.classes;
3 | var proxied = $.fn.treeview;
4 | $.fn.treeview = function(settings) {
5 | settings = $.extend({}, settings);
6 | if (settings.add) {
7 | return this.trigger("add", [settings.add]);
8 | }
9 | if (settings.remove) {
10 | return this.trigger("remove", [settings.remove]);
11 | }
12 | return proxied.apply(this, arguments).bind("add", function(event, branches) {
13 | $(branches).prev()
14 | .removeClass(CLASSES.last)
15 | .removeClass(CLASSES.lastCollapsable)
16 | .removeClass(CLASSES.lastExpandable)
17 | .find(">.hitarea")
18 | .removeClass(CLASSES.lastCollapsableHitarea)
19 | .removeClass(CLASSES.lastExpandableHitarea);
20 | $(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, $(this).data("toggler"));
21 | }).bind("remove", function(event, branches) {
22 | var prev = $(branches).prev();
23 | var parent = $(branches).parent();
24 | $(branches).remove();
25 | prev.filter(":last-child").addClass(CLASSES.last)
26 | .filter("." + CLASSES.expandable).replaceClass(CLASSES.last, CLASSES.lastExpandable).end()
27 | .find(">.hitarea").replaceClass(CLASSES.expandableHitarea, CLASSES.lastExpandableHitarea).end()
28 | .filter("." + CLASSES.collapsable).replaceClass(CLASSES.last, CLASSES.lastCollapsable).end()
29 | .find(">.hitarea").replaceClass(CLASSES.collapsableHitarea, CLASSES.lastCollapsableHitarea);
30 | if (parent.is(":not(:has(>))") && parent[0] != this) {
31 | parent.parent().removeClass(CLASSES.collapsable).removeClass(CLASSES.expandable)
32 | parent.siblings(".hitarea").andSelf().remove();
33 | }
34 | });
35 | };
36 |
37 | })(jQuery);
--------------------------------------------------------------------------------
/server/static/components/sticky.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Sticky
16 | *******************************/
17 |
18 | .ui.sticky {
19 | position: static;
20 | -webkit-transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
21 | transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
22 | z-index: 800;
23 | }
24 |
25 |
26 | /*******************************
27 | States
28 | *******************************/
29 |
30 |
31 | /* Bound */
32 | .ui.sticky.bound {
33 | position: absolute;
34 | left: auto;
35 | right: auto;
36 | }
37 |
38 | /* Fixed */
39 | .ui.sticky.fixed {
40 | position: fixed;
41 | left: auto;
42 | right: auto;
43 | }
44 |
45 | /* Bound/Fixed Position */
46 | .ui.sticky.bound.top,
47 | .ui.sticky.fixed.top {
48 | top: 0px;
49 | bottom: auto;
50 | }
51 | .ui.sticky.bound.bottom,
52 | .ui.sticky.fixed.bottom {
53 | top: auto;
54 | bottom: 0px;
55 | }
56 |
57 |
58 | /*******************************
59 | Types
60 | *******************************/
61 |
62 | .ui.native.sticky {
63 | position: -webkit-sticky;
64 | position: -moz-sticky;
65 | position: -ms-sticky;
66 | position: -o-sticky;
67 | position: sticky;
68 | }
69 |
70 |
71 | /*******************************
72 | Theme Overrides
73 | *******************************/
74 |
75 |
76 |
77 | /*******************************
78 | Site Overrides
79 | *******************************/
80 |
81 |
--------------------------------------------------------------------------------
/server/templates/library.html:
--------------------------------------------------------------------------------
1 | {% set pie_library = {
2 | "tooltip": {
3 | "pointFormat": '{series.name}: {point.y}'
4 | },
5 | "plotOptions": {"pie": {
6 | "borderWidth": 0,
7 | "dataLabels": { "enabled": false },
8 | "showInLegend": true,
9 | }
10 | },
11 | "title": { "text": "Packet Size" },
12 |
13 |
14 | } %}
15 |
16 | {% set col_library = {
17 | "yAxis": [{
18 | "id": 0,
19 | "min": 0,
20 | "opposite": false,
21 | "title": {
22 | "text": "Packets" }
23 | }
24 | ],
25 | "title": { "text": "Protocols" }
26 | } %}
27 |
28 | {% set bar_src_library = {
29 | "yAxis": [{
30 | "id": 0,
31 | "min": 0,
32 | "opposite": false,
33 | "title": {
34 | "text": "Packets Num" }
35 | }
36 | ],
37 | "title": { "text": "Source IP" },
38 | } %}
39 |
40 | {% set bar_dst_library = {
41 | "yAxis": [{
42 | "id": 0,
43 | "min": 0,
44 | "opposite": false,
45 | "title": {
46 | "text": "Packets Num" }
47 | }
48 | ],
49 | "title": { "text": "Destnation IP" }
50 | } %}
51 |
52 | {% set bar_dns_library = {
53 | "yAxis": [{
54 | "id": 0,
55 | "min": 0,
56 | "opposite": false,
57 | "title": {
58 | "text": "Packets Num" }
59 | }
60 | ],
61 | "title": { "text": "DNS Requests" },
62 | } %}
63 |
64 | {% set pie_dst_library = {
65 | "tooltip": {
66 | "pointFormat": '{series.name}: {point.y}'
67 | },
68 | "plotOptions": {"pie": {
69 | "borderWidth": 0,
70 | "dataLabels": { "enabled": false },
71 | "showInLegend": true,
72 | }
73 | },
74 | "title": { "text": "Destnation Ports" },
75 | } %}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/sticky.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Sticky
16 | *******************************/
17 |
18 | .ui.sticky {
19 | position: static;
20 | -webkit-transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
21 | transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
22 | z-index: 800;
23 | }
24 |
25 |
26 | /*******************************
27 | States
28 | *******************************/
29 |
30 |
31 | /* Bound */
32 | .ui.sticky.bound {
33 | position: absolute;
34 | left: auto;
35 | right: auto;
36 | }
37 |
38 | /* Fixed */
39 | .ui.sticky.fixed {
40 | position: fixed;
41 | left: auto;
42 | right: auto;
43 | }
44 |
45 | /* Bound/Fixed Position */
46 | .ui.sticky.bound.top,
47 | .ui.sticky.fixed.top {
48 | top: 0px;
49 | bottom: auto;
50 | }
51 | .ui.sticky.bound.bottom,
52 | .ui.sticky.fixed.bottom {
53 | top: auto;
54 | bottom: 0px;
55 | }
56 |
57 |
58 | /*******************************
59 | Types
60 | *******************************/
61 |
62 | .ui.native.sticky {
63 | position: -webkit-sticky;
64 | position: -moz-sticky;
65 | position: -ms-sticky;
66 | position: -o-sticky;
67 | position: sticky;
68 | }
69 |
70 |
71 | /*******************************
72 | Theme Overrides
73 | *******************************/
74 |
75 |
76 |
77 | /*******************************
78 | Site Overrides
79 | *******************************/
80 |
81 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/templates/library.html:
--------------------------------------------------------------------------------
1 | {% set pie_library = {
2 | "tooltip": {
3 | "pointFormat": '{series.name}: {point.y}'
4 | },
5 | "plotOptions": {"pie": {
6 | "borderWidth": 0,
7 | "dataLabels": { "enabled": false },
8 | "showInLegend": true,
9 | }
10 | },
11 | "title": { "text": "Packet Size" },
12 |
13 |
14 | } %}
15 |
16 | {% set col_library = {
17 | "yAxis": [{
18 | "id": 0,
19 | "min": 0,
20 | "opposite": false,
21 | "title": {
22 | "text": "Packets" }
23 | }
24 | ],
25 | "title": { "text": "Protocols" }
26 | } %}
27 |
28 | {% set bar_src_library = {
29 | "yAxis": [{
30 | "id": 0,
31 | "min": 0,
32 | "opposite": false,
33 | "title": {
34 | "text": "Packets Num" }
35 | }
36 | ],
37 | "title": { "text": "Source IP" },
38 | } %}
39 |
40 | {% set bar_dst_library = {
41 | "yAxis": [{
42 | "id": 0,
43 | "min": 0,
44 | "opposite": false,
45 | "title": {
46 | "text": "Packets Num" }
47 | }
48 | ],
49 | "title": { "text": "Destnation IP" }
50 | } %}
51 |
52 | {% set bar_dns_library = {
53 | "yAxis": [{
54 | "id": 0,
55 | "min": 0,
56 | "opposite": false,
57 | "title": {
58 | "text": "Packets Num" }
59 | }
60 | ],
61 | "title": { "text": "DNS Requests" },
62 | } %}
63 |
64 | {% set pie_dst_library = {
65 | "tooltip": {
66 | "pointFormat": '{series.name}: {point.y}'
67 | },
68 | "plotOptions": {"pie": {
69 | "borderWidth": 0,
70 | "dataLabels": { "enabled": false },
71 | "showInLegend": true,
72 | }
73 | },
74 | "title": { "text": "Destnation Ports" },
75 | } %}
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | Pcap Analyzer
2 | ======
3 |
4 |
5 | 数据包文件分析工具
6 |
7 | Web Package Analytic Tool
8 |
9 | 
10 |
11 |
12 | Features
13 | ---
14 |
15 | * 轻量,易读.但不适合大数据包分析.(可以基于此改进)
16 | * 上传,存储,下载基本功能
17 | * 数据包分析
18 | * 数据包列表
19 | * 数据包细节查询
20 | * Filter过滤
21 | * 数据包分析(来源/目的:IP/端口)
22 |
23 | Files
24 | ---
25 |
26 | ```
27 | .
28 | ├── app.py(运行Server)
29 | ├── img(ScreenShot)
30 | ├── server
31 | │ ├── __init__.py(Core)
32 | │ ├── func.py(调用函数)
33 | │ ├── views.py(视图)
34 | │ ├── pcapfile(上传文件目录)
35 | │ ├── db(数据库)
36 | │ ├── static(静态文件)
37 | │ └── templates(模板)
38 | ├── readme.md(项目说明)
39 | ├── requirements.txt(python库依赖)
40 | ├── run.sh(运行项目)
41 | └── run.bat(Windows下运行项目)
42 | ```
43 |
44 | Install
45 | ---
46 | - Linux:
47 | - $ pip install -r requirements.txt
48 | - $ python app.py
49 | - View http://localhost:8080/
50 |
51 | - Window:
52 | - Pycharm 导入github 库
53 | - 还需要安装3个编译库,参考下面文档
54 | - https://github.com/Kondziowy/scapy_win64/tree/master/win64
55 | - https://github.com/CoreSecurity/pcapy/wiki/Compiling-Pcapy-on-Windows-Guide
56 |
57 | Screenshots
58 | ---
59 |
60 | 
61 |
62 | 
63 |
64 | 
65 |
66 | 
67 |
68 | 
69 |
70 | 
71 |
72 | 
73 |
74 | 
75 |
76 |
77 | Build With
78 | ---
79 |
80 | * [Flask](http://flask.pocoo.org)
81 | * [Semanstic-UI](http://semantic-ui.com)
82 | * [JQuery](http://jquery.com/)
83 | * [PyShark](http://kiminewt.github.io/pyshark/)
84 | * [Chartkick](https://github.com/mher/chartkick.py)
85 | * [Highcharts](http://api.highcharts.com/highcharts)
86 |
87 | Thanks to
88 | ---
89 | [pcap-analyzer](https://github.com/le4f/pcap-analyzer)
90 |
--------------------------------------------------------------------------------
/server/static/js/jquery.json.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery JSON plugin v2.5.1 | github.com/Krinkle/jquery-json */
2 | !function($){"use strict";var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},hasOwn=Object.prototype.hasOwnProperty;$.toJSON="object"==typeof JSON&&JSON.stringify?JSON.stringify:function(a){if(null===a)return"null";var b,c,d,e,f=$.type(a);if("undefined"===f)return void 0;if("number"===f||"boolean"===f)return String(a);if("string"===f)return $.quoteString(a);if("function"==typeof a.toJSON)return $.toJSON(a.toJSON());if("date"===f){var g=a.getUTCMonth()+1,h=a.getUTCDate(),i=a.getUTCFullYear(),j=a.getUTCHours(),k=a.getUTCMinutes(),l=a.getUTCSeconds(),m=a.getUTCMilliseconds();return 10>g&&(g="0"+g),10>h&&(h="0"+h),10>j&&(j="0"+j),10>k&&(k="0"+k),10>l&&(l="0"+l),100>m&&(m="0"+m),10>m&&(m="0"+m),'"'+i+"-"+g+"-"+h+"T"+j+":"+k+":"+l+"."+m+'Z"'}if(b=[],$.isArray(a)){for(c=0;c.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>div{display:table-cell;vertical-align:middle;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0;z-index:-100;background-color:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background:rgba(255,255,255,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background:rgba(255,255,255,.85)}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/reset.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | *,:after,:before{box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/dimmer.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .dimmable{position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;background:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>div{display:table-cell;vertical-align:middle;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0;z-index:-100;background-color:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background:rgba(255,255,255,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background:rgba(255,255,255,.85)}
--------------------------------------------------------------------------------
/server/static/js/analyze.js:
--------------------------------------------------------------------------------
1 | var content = [
2 | { title: 'http' },
3 | { title: 'dns' },
4 | { title: 'icmp' },
5 | { title: 'smb || nbns || dcerpc || nbss || dns' },
6 | { title: 'ip.src==' },
7 | { title: 'ip.dst==' },
8 | { title: 'ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16' },
9 | { title: '!(ip.src == 10.43.54.65 or ip.dst == 10.43.54.65)'},
10 | { title: 'udp contains 81:60:03' },
11 | { title: 'eth.addr[0:3]==00:06:5B' },
12 | { title: 'http.request.uri matches "login$"' },
13 | { title: 'tcp.port eq 25' },
14 | // etc
15 | ];
16 |
17 | $(document).ready(function() {
18 | $('#analyzer-nav').addClass('active');
19 |
20 | $('.ui.checkbox').checkbox();
21 |
22 | $('.ui.accordion').accordion();
23 |
24 | $('.menu .item').tab();
25 |
26 | $("#pcaptable").FixedHead({ tableLayout: "floated" });
27 |
28 | $('.ui.search').search({
29 | source: content
30 | });
31 |
32 | $('input#filter').keyup(function(e){
33 | event.preventDefault();
34 | if (e.keyCode == 13) {
35 | $('.ui.small.que.modal')
36 | .modal({
37 | closable : true,
38 | onDeny : function(){
39 | return true;
40 | },
41 | onApprove : function() {
42 | window.location.href= window.location.pathname + '?filter=' + $('input#filter').val();
43 | }
44 | }).modal('show');
45 | }
46 | });
47 |
48 | $('.pktdetail tr').on('click', function(e){
49 | $("#loadbartable").addClass('active');
50 | $("#loadbar").modal({closable : true,}).modal('show');
51 | e.preventDefault();
52 | var packetPane = $('.packetPane')
53 | packetPane.html('');
54 | $('.spinner').removeClass('hide');
55 | var packetDetail = $.ajax({
56 | type : "GET",
57 | url : "/packetdetail/" + $("input[name='analyzeid']").val() + '/' + $(this).children().first().text(),
58 | contentType: 'application/text;charset=UTF-8',
59 | success: function(text){
60 | $('.spinner').addClass('hide');
61 | packetPane.html(text);
62 | $('.ui.packetPane.modal')
63 | .modal({
64 | closable : true,
65 | }).modal('show');
66 | }
67 | });
68 | });
69 | });
70 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/js/analyze.js:
--------------------------------------------------------------------------------
1 | var content = [
2 | { title: 'http' },
3 | { title: 'dns' },
4 | { title: 'icmp' },
5 | { title: 'smb || nbns || dcerpc || nbss || dns' },
6 | { title: 'ip.src==' },
7 | { title: 'ip.dst==' },
8 | { title: 'ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16' },
9 | { title: '!(ip.src == 10.43.54.65 or ip.dst == 10.43.54.65)'},
10 | { title: 'udp contains 81:60:03' },
11 | { title: 'eth.addr[0:3]==00:06:5B' },
12 | { title: 'http.request.uri matches "login$"' },
13 | { title: 'tcp.port eq 25' },
14 | // etc
15 | ];
16 |
17 | $(document).ready(function() {
18 | $('#analyzer-nav').addClass('active');
19 |
20 | $('.ui.checkbox').checkbox();
21 |
22 | $('.ui.accordion').accordion();
23 |
24 | $('.menu .item').tab();
25 |
26 | $("#pcaptable").FixedHead({ tableLayout: "floated" });
27 |
28 | $('.ui.search').search({
29 | source: content
30 | });
31 |
32 | $('input#filter').keyup(function(e){
33 | event.preventDefault();
34 | if (e.keyCode == 13) {
35 | $('.ui.small.que.modal')
36 | .modal({
37 | closable : true,
38 | onDeny : function(){
39 | return true;
40 | },
41 | onApprove : function() {
42 | window.location.href= window.location.pathname + '?filter=' + $('input#filter').val();
43 | }
44 | }).modal('show');
45 | }
46 | });
47 |
48 | $('.pktdetail tr').on('click', function(e){
49 | $("#loadbartable").addClass('active');
50 | $("#loadbar").modal({closable : true,}).modal('show');
51 | e.preventDefault();
52 | var packetPane = $('.packetPane')
53 | packetPane.html('');
54 | $('.spinner').removeClass('hide');
55 | var packetDetail = $.ajax({
56 | type : "GET",
57 | url : "/packetdetail/" + $("input[name='analyzeid']").val() + '/' + $(this).children().first().text(),
58 | contentType: 'application/text;charset=UTF-8',
59 | success: function(text){
60 | $('.spinner').addClass('hide');
61 | packetPane.html(text);
62 | $('.ui.packetPane.modal')
63 | .modal({
64 | closable : true,
65 | }).modal('show');
66 | }
67 | });
68 | });
69 | });
70 |
--------------------------------------------------------------------------------
/server/static/js/fixtableheader.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Auther:Mike.Jiang
3 | * Email: dataadapter@hotmail.com
4 | * Date: 2012-09-05
5 | */
6 | /*
7 | 主要思想:
8 | 1>将原有的TABLE中的THEAD元素复制一份放在一个新的DIV(fixedheadwrap)中
9 | 2>设置这个fixedheadwrap为绝对位于原来的TABLE的THEAD位置
10 | */
11 | (function ($) {
12 | $.fn.extend({
13 | FixedHead: function (options) {
14 | var op = $.extend({ tableLayout: "auto" }, options);
15 | return this.each(function () {
16 | var $this = $(this); //指向当前的table
17 | var $thisParentDiv = $(this).parent(); //指向当前table的父级DIV,这个DIV要自己手动加上去
18 | $thisParentDiv.wrap("").parent().css({ "position": "relative" }); //在当前table的父级DIV上,再加一个DIV
19 | var x = $thisParentDiv.position();
20 |
21 | var fixedDiv = $("")
22 | .insertBefore($thisParentDiv)//在当前table的父级DIV的前面加一个DIV,此DIV用来包装tabelr的表头
23 | .css({ "width": $thisParentDiv[0].clientWidth, "left": x.left, "top": x.top });
24 |
25 | var $thisClone = $this.clone(true);
26 | $thisClone.find("tbody").remove(); //复制一份table,并将tbody中的内容删除,这样就仅余thead,所以要求表格的表头要放在thead中
27 | $thisClone.appendTo(fixedDiv); //将表头添加到fixedDiv中
28 |
29 | $this.css({ "marginTop": 0, "table-layout": op.tableLayout });
30 | //当前TABLE的父级DIV有水平滚动条,并水平滚动时,同时滚动包装thead的DIV
31 | $thisParentDiv.scroll(function () {
32 | fixedDiv[0].scrollLeft = $(this)[0].scrollLeft;
33 | });
34 |
35 | //因为固定后的表头与原来的表格分离开了,难免会有一些宽度问题
36 | //下面的代码是将原来表格中每一个TD的宽度赋给新的固定表头
37 | var $fixHeadTrs = $thisClone.find("thead tr");
38 | var $orginalHeadTrs = $this.find("thead");
39 | $fixHeadTrs.each(function (indexTr) {
40 | var $curFixTds = $(this).find("td");
41 | var $curOrgTr = $orginalHeadTrs.find("tr:eq(" + indexTr + ")");
42 | $curFixTds.each(function (indexTd) {
43 | $(this).css("width", $curOrgTr.find("td:eq(" + indexTd + ")").width());
44 | });
45 | });
46 | });
47 | }
48 | });
49 | })(jQuery);
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/js/fixtableheader.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Auther:Mike.Jiang
3 | * Email: dataadapter@hotmail.com
4 | * Date: 2012-09-05
5 | */
6 | /*
7 | 主要思想:
8 | 1>将原有的TABLE中的THEAD元素复制一份放在一个新的DIV(fixedheadwrap)中
9 | 2>设置这个fixedheadwrap为绝对位于原来的TABLE的THEAD位置
10 | */
11 | (function ($) {
12 | $.fn.extend({
13 | FixedHead: function (options) {
14 | var op = $.extend({ tableLayout: "auto" }, options);
15 | return this.each(function () {
16 | var $this = $(this); //指向当前的table
17 | var $thisParentDiv = $(this).parent(); //指向当前table的父级DIV,这个DIV要自己手动加上去
18 | $thisParentDiv.wrap("").parent().css({ "position": "relative" }); //在当前table的父级DIV上,再加一个DIV
19 | var x = $thisParentDiv.position();
20 |
21 | var fixedDiv = $("")
22 | .insertBefore($thisParentDiv)//在当前table的父级DIV的前面加一个DIV,此DIV用来包装tabelr的表头
23 | .css({ "width": $thisParentDiv[0].clientWidth, "left": x.left, "top": x.top });
24 |
25 | var $thisClone = $this.clone(true);
26 | $thisClone.find("tbody").remove(); //复制一份table,并将tbody中的内容删除,这样就仅余thead,所以要求表格的表头要放在thead中
27 | $thisClone.appendTo(fixedDiv); //将表头添加到fixedDiv中
28 |
29 | $this.css({ "marginTop": 0, "table-layout": op.tableLayout });
30 | //当前TABLE的父级DIV有水平滚动条,并水平滚动时,同时滚动包装thead的DIV
31 | $thisParentDiv.scroll(function () {
32 | fixedDiv[0].scrollLeft = $(this)[0].scrollLeft;
33 | });
34 |
35 | //因为固定后的表头与原来的表格分离开了,难免会有一些宽度问题
36 | //下面的代码是将原来表格中每一个TD的宽度赋给新的固定表头
37 | var $fixHeadTrs = $thisClone.find("thead tr");
38 | var $orginalHeadTrs = $this.find("thead");
39 | $fixHeadTrs.each(function (indexTr) {
40 | var $curFixTds = $(this).find("td");
41 | var $curOrgTr = $orginalHeadTrs.find("tr:eq(" + indexTr + ")");
42 | $curFixTds.each(function (indexTd) {
43 | $(this).css("width", $curOrgTr.find("td:eq(" + indexTd + ")").width());
44 | });
45 | });
46 | });
47 | }
48 | });
49 | })(jQuery);
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Pcap-Analyzer
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
25 |
26 |
27 |
30 |
35 |
46 |
47 |
48 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/server/static/components/breadcrumb.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Breadcrumb
16 | *******************************/
17 |
18 | .ui.breadcrumb {
19 | margin: 1em 0em;
20 | display: inline-block;
21 | vertical-align: middle;
22 | }
23 | .ui.breadcrumb:first-child {
24 | margin-top: 0em;
25 | }
26 | .ui.breadcrumb:last-child {
27 | margin-bottom: 0em;
28 | }
29 |
30 |
31 | /*******************************
32 | Content
33 | *******************************/
34 |
35 |
36 | /* Divider */
37 | .ui.breadcrumb .divider {
38 | display: inline-block;
39 | opacity: 0.5;
40 | margin: 0em 0.2rem 0em;
41 | font-size: 0.9em;
42 | color: rgba(0, 0, 0, 0.4);
43 | vertical-align: baseline;
44 | }
45 |
46 | /* Link */
47 | .ui.breadcrumb a {
48 | color: #009fda;
49 | }
50 | .ui.breadcrumb a:hover {
51 | color: #00b2f3;
52 | }
53 |
54 | /* Icon Divider */
55 | .ui.breadcrumb .icon.divider {
56 | font-size: 0.7em;
57 | vertical-align: middle;
58 | }
59 |
60 | /* Section */
61 | .ui.breadcrumb a.section {
62 | cursor: pointer;
63 | }
64 | .ui.breadcrumb .section {
65 | display: inline-block;
66 | margin: 0em;
67 | padding: 0em;
68 | }
69 |
70 | /* Loose Coupling */
71 | .ui.breadcrumb.segment {
72 | display: inline-block;
73 | padding: 0.5em 1em;
74 | }
75 |
76 |
77 | /*******************************
78 | States
79 | *******************************/
80 |
81 | .ui.breadcrumb .active.section {
82 | font-weight: bold;
83 | }
84 |
85 |
86 | /*******************************
87 | Variations
88 | *******************************/
89 |
90 | .ui.mini.breadcrumb {
91 | font-size: 0.65em;
92 | }
93 | .ui.tiny.breadcrumb {
94 | font-size: 0.7em;
95 | }
96 | .ui.small.breadcrumb {
97 | font-size: 0.75em;
98 | }
99 | .ui.breadcrumb {
100 | font-size: 1em;
101 | }
102 | .ui.large.breadcrumb {
103 | font-size: 1.1em;
104 | }
105 | .ui.big.breadcrumb {
106 | font-size: 1.05em;
107 | }
108 | .ui.huge.breadcrumb {
109 | font-size: 1.3em;
110 | }
111 | .ui.massive.breadcrumb {
112 | font-size: 1.5em;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/breadcrumb.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Breadcrumb
16 | *******************************/
17 |
18 | .ui.breadcrumb {
19 | margin: 1em 0em;
20 | display: inline-block;
21 | vertical-align: middle;
22 | }
23 | .ui.breadcrumb:first-child {
24 | margin-top: 0em;
25 | }
26 | .ui.breadcrumb:last-child {
27 | margin-bottom: 0em;
28 | }
29 |
30 |
31 | /*******************************
32 | Content
33 | *******************************/
34 |
35 |
36 | /* Divider */
37 | .ui.breadcrumb .divider {
38 | display: inline-block;
39 | opacity: 0.5;
40 | margin: 0em 0.2rem 0em;
41 | font-size: 0.9em;
42 | color: rgba(0, 0, 0, 0.4);
43 | vertical-align: baseline;
44 | }
45 |
46 | /* Link */
47 | .ui.breadcrumb a {
48 | color: #009fda;
49 | }
50 | .ui.breadcrumb a:hover {
51 | color: #00b2f3;
52 | }
53 |
54 | /* Icon Divider */
55 | .ui.breadcrumb .icon.divider {
56 | font-size: 0.7em;
57 | vertical-align: middle;
58 | }
59 |
60 | /* Section */
61 | .ui.breadcrumb a.section {
62 | cursor: pointer;
63 | }
64 | .ui.breadcrumb .section {
65 | display: inline-block;
66 | margin: 0em;
67 | padding: 0em;
68 | }
69 |
70 | /* Loose Coupling */
71 | .ui.breadcrumb.segment {
72 | display: inline-block;
73 | padding: 0.5em 1em;
74 | }
75 |
76 |
77 | /*******************************
78 | States
79 | *******************************/
80 |
81 | .ui.breadcrumb .active.section {
82 | font-weight: bold;
83 | }
84 |
85 |
86 | /*******************************
87 | Variations
88 | *******************************/
89 |
90 | .ui.mini.breadcrumb {
91 | font-size: 0.65em;
92 | }
93 | .ui.tiny.breadcrumb {
94 | font-size: 0.7em;
95 | }
96 | .ui.small.breadcrumb {
97 | font-size: 0.75em;
98 | }
99 | .ui.breadcrumb {
100 | font-size: 1em;
101 | }
102 | .ui.large.breadcrumb {
103 | font-size: 1.1em;
104 | }
105 | .ui.big.breadcrumb {
106 | font-size: 1.05em;
107 | }
108 | .ui.huge.breadcrumb {
109 | font-size: 1.3em;
110 | }
111 | .ui.massive.breadcrumb {
112 | font-size: 1.5em;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/server/static/components/comment.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.8);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#00b2f3}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.8);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(39,41,43,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.9em}.ui.comments{font-size:1em}.ui.large.comments{font-size:1.1em}.ui.huge.comments{font-size:1.2em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/comment.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.8);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#00b2f3}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.8);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(39,41,43,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.9em}.ui.comments{font-size:1em}.ui.large.comments{font-size:1.1em}.ui.huge.comments{font-size:1.2em}
--------------------------------------------------------------------------------
/server/static/components/rail.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Rails
16 | *******************************/
17 |
18 | .ui.rail {
19 | font-size: 1em;
20 | position: absolute;
21 | top: 0%;
22 | width: 300px;
23 | box-sizing: content-box;
24 | }
25 | .ui.left.rail {
26 | left: auto;
27 | right: 100%;
28 | padding: 0em 2rem 0em 0em;
29 | margin: 0em 2rem 0em 0em;
30 | }
31 | .ui.right.rail {
32 | left: 100%;
33 | right: auto;
34 | padding: 0em 0em 0em 2rem;
35 | margin: 0em 0em 0em 2rem;
36 | }
37 |
38 |
39 | /*******************************
40 | Variations
41 | *******************************/
42 |
43 |
44 | /*--------------
45 | Internal
46 | ---------------*/
47 |
48 | .ui.left.internal.rail {
49 | left: 0%;
50 | right: auto;
51 | padding: 0em 0em 0em 2rem;
52 | margin: 0em 0em 0em 2rem;
53 | }
54 | .ui.right.internal.rail {
55 | left: auto;
56 | right: 0%;
57 | padding: 0em 2rem 0em 0em;
58 | margin: 0em 2rem 0em 0em;
59 | }
60 |
61 | /*--------------
62 | Divided
63 | ---------------*/
64 |
65 | .ui.left.dividing.rail {
66 | padding: 0em 2.5rem 0em 0em;
67 | margin: 0em 2.5rem 0em 0em;
68 | border-right: 1px solid rgba(39, 41, 43, 0.15);
69 | }
70 | .ui.right.dividing.rail {
71 | border-left: 1px solid rgba(39, 41, 43, 0.15);
72 | padding: 0em 0em 0em 2.5rem;
73 | margin: 0em 0em 0em 2.5rem;
74 | }
75 |
76 | /*--------------
77 | Distance
78 | ---------------*/
79 |
80 | .ui.close.left.rail {
81 | padding: 0em 1em 0em 0em;
82 | margin: 0em 1em 0em 0em;
83 | }
84 | .ui.close.right.rail {
85 | padding: 0em 0em 0em 1em;
86 | margin: 0em 0em 0em 1em;
87 | }
88 | .ui.very.close.left.rail {
89 | padding: 0em 0.5em 0em 0em;
90 | margin: 0em 0.5em 0em 0em;
91 | }
92 | .ui.very.close.right.rail {
93 | padding: 0em 0em 0em 0.5em;
94 | margin: 0em 0em 0em 0.5em;
95 | }
96 |
97 | /*--------------
98 | Attached
99 | ---------------*/
100 |
101 | .ui.attached.left.rail,
102 | .ui.attached.right.rail {
103 | padding: 0em;
104 | margin: 0em;
105 | }
106 |
107 | /*--------------
108 | Sizing
109 | ---------------*/
110 |
111 | .ui.rail {
112 | font-size: 1em;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/server/static/components/image.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block;background:0 0}.ui.image img{display:block;max-width:100%;height:auto}.ui.disabled.image{cursor:default;opacity:.3}.ui.inline.image,.ui.inline.image img{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.images .image{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.images .image{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.images .image{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image img,.ui.rounded.images .image,.ui.rounded.images img{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.images .image,.ui.bordered.images img,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image img,.ui.circular.images .image,.ui.circular.images img{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.images,.ui.fluid.images img{display:block;width:100%}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.images .image,.ui.avatar.images img{margin-right:.25em;display:inline-block;width:2.5em;height:2.5em;border-radius:500rem}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img{width:20px;font-size:.71428571rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img{width:80px;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img{width:150px;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img{width:300px;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img{width:450px;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img{width:600px;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img{width:800px;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img{width:960px;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images img{display:inline-block;margin:0 .25rem .5rem}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/rail.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Rails
16 | *******************************/
17 |
18 | .ui.rail {
19 | font-size: 1em;
20 | position: absolute;
21 | top: 0%;
22 | width: 300px;
23 | box-sizing: content-box;
24 | }
25 | .ui.left.rail {
26 | left: auto;
27 | right: 100%;
28 | padding: 0em 2rem 0em 0em;
29 | margin: 0em 2rem 0em 0em;
30 | }
31 | .ui.right.rail {
32 | left: 100%;
33 | right: auto;
34 | padding: 0em 0em 0em 2rem;
35 | margin: 0em 0em 0em 2rem;
36 | }
37 |
38 |
39 | /*******************************
40 | Variations
41 | *******************************/
42 |
43 |
44 | /*--------------
45 | Internal
46 | ---------------*/
47 |
48 | .ui.left.internal.rail {
49 | left: 0%;
50 | right: auto;
51 | padding: 0em 0em 0em 2rem;
52 | margin: 0em 0em 0em 2rem;
53 | }
54 | .ui.right.internal.rail {
55 | left: auto;
56 | right: 0%;
57 | padding: 0em 2rem 0em 0em;
58 | margin: 0em 2rem 0em 0em;
59 | }
60 |
61 | /*--------------
62 | Divided
63 | ---------------*/
64 |
65 | .ui.left.dividing.rail {
66 | padding: 0em 2.5rem 0em 0em;
67 | margin: 0em 2.5rem 0em 0em;
68 | border-right: 1px solid rgba(39, 41, 43, 0.15);
69 | }
70 | .ui.right.dividing.rail {
71 | border-left: 1px solid rgba(39, 41, 43, 0.15);
72 | padding: 0em 0em 0em 2.5rem;
73 | margin: 0em 0em 0em 2.5rem;
74 | }
75 |
76 | /*--------------
77 | Distance
78 | ---------------*/
79 |
80 | .ui.close.left.rail {
81 | padding: 0em 1em 0em 0em;
82 | margin: 0em 1em 0em 0em;
83 | }
84 | .ui.close.right.rail {
85 | padding: 0em 0em 0em 1em;
86 | margin: 0em 0em 0em 1em;
87 | }
88 | .ui.very.close.left.rail {
89 | padding: 0em 0.5em 0em 0em;
90 | margin: 0em 0.5em 0em 0em;
91 | }
92 | .ui.very.close.right.rail {
93 | padding: 0em 0em 0em 0.5em;
94 | margin: 0em 0em 0em 0.5em;
95 | }
96 |
97 | /*--------------
98 | Attached
99 | ---------------*/
100 |
101 | .ui.attached.left.rail,
102 | .ui.attached.right.rail {
103 | padding: 0em;
104 | margin: 0em;
105 | }
106 |
107 | /*--------------
108 | Sizing
109 | ---------------*/
110 |
111 | .ui.rail {
112 | font-size: 1em;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/image.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block;background:0 0}.ui.image img{display:block;max-width:100%;height:auto}.ui.disabled.image{cursor:default;opacity:.3}.ui.inline.image,.ui.inline.image img{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.images .image{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.images .image{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.images .image{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image img,.ui.rounded.images .image,.ui.rounded.images img{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.images .image,.ui.bordered.images img,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image img,.ui.circular.images .image,.ui.circular.images img{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.images,.ui.fluid.images img{display:block;width:100%}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.images .image,.ui.avatar.images img{margin-right:.25em;display:inline-block;width:2.5em;height:2.5em;border-radius:500rem}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img{width:20px;font-size:.71428571rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img{width:80px;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img{width:150px;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img{width:300px;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img{width:450px;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img{width:600px;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img{width:800px;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img{width:960px;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images img{display:inline-block;margin:0 .25rem .5rem}
--------------------------------------------------------------------------------
/server/static/components/video.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Video
16 | *******************************/
17 |
18 | .ui.video {
19 | background-color: #dddddd;
20 | position: relative;
21 | max-width: 100%;
22 | padding-bottom: 56.25%;
23 | height: 0px;
24 | overflow: hidden;
25 | }
26 |
27 | /*--------------
28 | Content
29 | ---------------*/
30 |
31 |
32 | /* Placeholder Image */
33 | .ui.video .placeholder {
34 | background-color: #333333;
35 | }
36 |
37 | /* Play Icon Overlay */
38 | .ui.video .play {
39 | cursor: pointer;
40 | position: absolute;
41 | top: 0px;
42 | left: 0px;
43 | z-index: 10;
44 | width: 100%;
45 | height: 100%;
46 | opacity: 0.8;
47 | -webkit-transition: opacity 0.3s;
48 | transition: opacity 0.3s;
49 | }
50 | .ui.video .play.icon:before {
51 | position: absolute;
52 | top: 50%;
53 | left: 50%;
54 | z-index: 11;
55 | background: rgba(0, 0, 0, 0.3);
56 | width: 8rem;
57 | height: 8rem;
58 | line-height: 8rem;
59 | border-radius: 500rem;
60 | color: #ffffff;
61 | font-size: 8rem;
62 | text-shadow: none;
63 | -webkit-transform: translateX(-50%) translateY(-50%);
64 | -ms-transform: translateX(-50%) translateY(-50%);
65 | transform: translateX(-50%) translateY(-50%);
66 | }
67 | .ui.video .placeholder {
68 | position: absolute;
69 | top: 0px;
70 | left: 0px;
71 | display: block;
72 | width: 100%;
73 | height: 100%;
74 | }
75 |
76 | /* IFrame Embed */
77 | .ui.video .embed iframe,
78 | .ui.video .embed embed,
79 | .ui.video .embed object {
80 | position: absolute;
81 | border: none;
82 | width: 100%;
83 | height: 100%;
84 | top: 0px;
85 | left: 0px;
86 | margin: 0em;
87 | padding: 0em;
88 | }
89 |
90 |
91 | /*******************************
92 | States
93 | *******************************/
94 |
95 |
96 | /*--------------
97 | Hover
98 | ---------------*/
99 |
100 | .ui.video .play:hover {
101 | opacity: 1;
102 | }
103 |
104 | /*--------------
105 | Active
106 | ---------------*/
107 |
108 | .ui.video.active .play,
109 | .ui.video.active .placeholder {
110 | display: none;
111 | }
112 | .ui.video.active .embed {
113 | display: inline;
114 | }
115 |
116 |
117 | /*******************************
118 | Video Overrides
119 | *******************************/
120 |
121 |
122 |
123 | /*******************************
124 | Site Overrides
125 | *******************************/
126 |
127 |
--------------------------------------------------------------------------------
/server/static/components/popup.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.popup{display:none;position:absolute;top:0;right:0;z-index:900;border:1px solid #ccc;max-width:250px;background-color:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.8);border-radius:.2857rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.ui.popup>.header{padding:0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:'';width:.75em;height:.75em;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #b3b3b3}.ui.popup{margin:0}.ui.popup.bottom{margin:.75em 0 0}.ui.popup.top{margin:0 0 .75em}.ui.popup.left.center{margin:0 .75em 0 0}.ui.popup.right.center{margin:0 0 0 .75em}.ui.bottom.center.popup:before{margin-left:-.325em;top:-.325em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.325em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.bottom.right.popup{margin-right:0}.ui.bottom.right.popup:before{top:-.325em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.325em;left:50%;margin-left:-.325em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.325em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.325em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.325em;bottom:auto;left:auto;margin-top:-.325em;box-shadow:1px -1px 0 0 #b3b3b3}.ui.right.center.popup:before{top:50%;left:-.325em;bottom:auto;right:auto;margin-top:-.325em;box-shadow:-1px 1px 0 0 #b3b3b3}.ui.popup>.ui.grid:not(.padded){width:-webkit-calc(100% + 1.75rem);width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.basic.popup:before{display:none}.ui.wide.popup{width:350px;max-width:350px}.ui[class*="very wide"].popup{width:550px;max-width:550px}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.small.popup{font-size:.785714rem}.ui.popup{font-size:.85714rem}.ui.large.popup{font-size:1rem}.ui.huge.popup{font-size:1.14285rem}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/video.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Video
16 | *******************************/
17 |
18 | .ui.video {
19 | background-color: #dddddd;
20 | position: relative;
21 | max-width: 100%;
22 | padding-bottom: 56.25%;
23 | height: 0px;
24 | overflow: hidden;
25 | }
26 |
27 | /*--------------
28 | Content
29 | ---------------*/
30 |
31 |
32 | /* Placeholder Image */
33 | .ui.video .placeholder {
34 | background-color: #333333;
35 | }
36 |
37 | /* Play Icon Overlay */
38 | .ui.video .play {
39 | cursor: pointer;
40 | position: absolute;
41 | top: 0px;
42 | left: 0px;
43 | z-index: 10;
44 | width: 100%;
45 | height: 100%;
46 | opacity: 0.8;
47 | -webkit-transition: opacity 0.3s;
48 | transition: opacity 0.3s;
49 | }
50 | .ui.video .play.icon:before {
51 | position: absolute;
52 | top: 50%;
53 | left: 50%;
54 | z-index: 11;
55 | background: rgba(0, 0, 0, 0.3);
56 | width: 8rem;
57 | height: 8rem;
58 | line-height: 8rem;
59 | border-radius: 500rem;
60 | color: #ffffff;
61 | font-size: 8rem;
62 | text-shadow: none;
63 | -webkit-transform: translateX(-50%) translateY(-50%);
64 | -ms-transform: translateX(-50%) translateY(-50%);
65 | transform: translateX(-50%) translateY(-50%);
66 | }
67 | .ui.video .placeholder {
68 | position: absolute;
69 | top: 0px;
70 | left: 0px;
71 | display: block;
72 | width: 100%;
73 | height: 100%;
74 | }
75 |
76 | /* IFrame Embed */
77 | .ui.video .embed iframe,
78 | .ui.video .embed embed,
79 | .ui.video .embed object {
80 | position: absolute;
81 | border: none;
82 | width: 100%;
83 | height: 100%;
84 | top: 0px;
85 | left: 0px;
86 | margin: 0em;
87 | padding: 0em;
88 | }
89 |
90 |
91 | /*******************************
92 | States
93 | *******************************/
94 |
95 |
96 | /*--------------
97 | Hover
98 | ---------------*/
99 |
100 | .ui.video .play:hover {
101 | opacity: 1;
102 | }
103 |
104 | /*--------------
105 | Active
106 | ---------------*/
107 |
108 | .ui.video.active .play,
109 | .ui.video.active .placeholder {
110 | display: none;
111 | }
112 | .ui.video.active .embed {
113 | display: inline;
114 | }
115 |
116 |
117 | /*******************************
118 | Video Overrides
119 | *******************************/
120 |
121 |
122 |
123 | /*******************************
124 | Site Overrides
125 | *******************************/
126 |
127 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/popup.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.popup{display:none;position:absolute;top:0;right:0;z-index:900;border:1px solid #ccc;max-width:250px;background-color:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.8);border-radius:.2857rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.ui.popup>.header{padding:0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:'';width:.75em;height:.75em;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #b3b3b3}.ui.popup{margin:0}.ui.popup.bottom{margin:.75em 0 0}.ui.popup.top{margin:0 0 .75em}.ui.popup.left.center{margin:0 .75em 0 0}.ui.popup.right.center{margin:0 0 0 .75em}.ui.bottom.center.popup:before{margin-left:-.325em;top:-.325em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.325em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.bottom.right.popup{margin-right:0}.ui.bottom.right.popup:before{top:-.325em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #b3b3b3}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.325em;left:50%;margin-left:-.325em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.325em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.325em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.325em;bottom:auto;left:auto;margin-top:-.325em;box-shadow:1px -1px 0 0 #b3b3b3}.ui.right.center.popup:before{top:50%;left:-.325em;bottom:auto;right:auto;margin-top:-.325em;box-shadow:-1px 1px 0 0 #b3b3b3}.ui.popup>.ui.grid:not(.padded){width:-webkit-calc(100% + 1.75rem);width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.basic.popup:before{display:none}.ui.wide.popup{width:350px;max-width:350px}.ui[class*="very wide"].popup{width:550px;max-width:550px}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.small.popup{font-size:.785714rem}.ui.popup{font-size:.85714rem}.ui.large.popup{font-size:1rem}.ui.huge.popup{font-size:1.14285rem}
--------------------------------------------------------------------------------
/server/static/components/site.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | @import 'http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic';
12 |
13 |
14 |
15 | /*******************************
16 | Page
17 | *******************************/
18 |
19 |
20 | /* UI requires Border-Box */
21 | *,
22 | *:before,
23 | *:after {
24 | box-sizing: border-box;
25 | }
26 | html,
27 | body {
28 | height: 100%;
29 | }
30 | html {
31 | font-size: 14px;
32 | }
33 | body {
34 | margin: 0px;
35 | padding: 0px;
36 | min-width: 278px;
37 | background: #f7f7f7;
38 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
39 | font-size: 14px;
40 | line-height: 1.33;
41 | color: rgba(0, 0, 0, 0.8);
42 | font-smoothing: antialiased;
43 | }
44 |
45 |
46 | /*******************************
47 | Headers
48 | *******************************/
49 |
50 | h1,
51 | h2,
52 | h3,
53 | h4,
54 | h5 {
55 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
56 | line-height: 1.33em;
57 | margin: -webkit-calc(2rem - 0.165em ) 0em 1rem;
58 | margin: calc(2rem - 0.165em ) 0em 1rem;
59 | font-weight: bold;
60 | padding: 0em;
61 | }
62 | h1 {
63 | min-height: 1rem;
64 | font-size: 2rem;
65 | }
66 | h2 {
67 | font-size: 1.714rem;
68 | }
69 | h3 {
70 | font-size: 1.28rem;
71 | }
72 | h4 {
73 | font-size: 1.071rem;
74 | }
75 | h5 {
76 | font-size: 1rem;
77 | }
78 |
79 |
80 | /*******************************
81 | Text
82 | *******************************/
83 |
84 | p {
85 | margin: 0em 0em 1em;
86 | line-height: 1.33;
87 | }
88 | p:first-child {
89 | margin-top: 0em;
90 | }
91 | p:last-child {
92 | margin-bottom: 0em;
93 | }
94 |
95 | /*-------------------
96 | Links
97 | --------------------*/
98 |
99 | a {
100 | color: #009fda;
101 | text-decoration: none;
102 | }
103 | a:hover {
104 | color: #00b2f3;
105 | }
106 |
107 |
108 | /*******************************
109 | Highlighting
110 | *******************************/
111 |
112 | ::-webkit-selection {
113 | background-color: rgba(255, 255, 160, 0.4);
114 | color: rgba(0, 0, 0, 0.8);
115 | }
116 | ::-moz-selection {
117 | background-color: rgba(255, 255, 160, 0.4);
118 | color: rgba(0, 0, 0, 0.8);
119 | }
120 | ::selection {
121 | background-color: rgba(255, 255, 160, 0.4);
122 | color: rgba(0, 0, 0, 0.8);
123 | }
124 |
125 |
126 | /*******************************
127 | Global Overrides
128 | *******************************/
129 |
130 |
131 |
132 | /*******************************
133 | Site Overrides
134 | *******************************/
135 |
136 |
--------------------------------------------------------------------------------
/server/static/css/jquery.treeview.css:
--------------------------------------------------------------------------------
1 | .treeview, .treeview ul {
2 | padding: 0;
3 | margin: 0;
4 | list-style: none;
5 | }
6 |
7 | .treeview ul {
8 | background-color: white;
9 | margin-top: 4px;
10 | }
11 |
12 | .treeview .hitarea {
13 | background: url(../img/treeview-default.gif) -64px -25px no-repeat;
14 | height: 16px;
15 | width: 16px;
16 | margin-left: -16px;
17 | float: left;
18 | cursor: pointer;
19 | }
20 | /* fix for IE6 */
21 | * html .hitarea {
22 | display: inline;
23 | float:none;
24 | }
25 |
26 | .treeview li {
27 | margin: 0;
28 | padding: 3px 0pt 3px 16px;
29 | }
30 |
31 | .treeview a.selected {
32 | background-color: #eee;
33 | }
34 |
35 | #treecontrol { margin: 1em 0; display: none; }
36 |
37 | .treeview .hover { color: red; cursor: pointer; }
38 |
39 | .treeview li { background: url(../img/treeview-default-line.gif) 0 0 no-repeat; }
40 | .treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
41 |
42 | .treeview .expandable-hitarea { background-position: -80px -3px; }
43 |
44 | .treeview li.last { background-position: 0 -1766px }
45 | .treeview li.lastCollapsable, .treeview li.lastExpandable { background-img: url(../img/treeview-default.gif); }
46 | .treeview li.lastCollapsable { background-position: 0 -111px }
47 | .treeview li.lastExpandable { background-position: -32px -67px }
48 |
49 | .treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
50 |
51 | .treeview-red li { background-img: url(../img/treeview-red-line.gif); }
52 | .treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-img: url(../img/treeview-red.gif); }
53 |
54 | .treeview-black li { background-img: url(../img/treeview-black-line.gif); }
55 | .treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-img: url(../img/treeview-black.gif); }
56 |
57 | .treeview-gray li { background-img: url(../img/treeview-gray-line.gif); }
58 | .treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-img: url(../img/treeview-gray.gif); }
59 |
60 | .treeview-famfamfam li { background-img: url(../img/treeview-famfamfam-line.gif); }
61 | .treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-img: url(../img/treeview-famfamfam.gif); }
62 |
63 | .treeview .placeholder {
64 | background: url(../img/ajax-loader.gif) 0 0 no-repeat;
65 | height: 16px;
66 | width: 16px;
67 | display: block;
68 | }
69 |
70 | .filetree li { padding: 3px 0 2px 16px; }
71 | .filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
72 | .filetree span.folder { background: url(../img/folder.gif) 0 0 no-repeat; }
73 | .filetree li.expandable span.folder { background: url(../img/folder-closed.gif) 0 0 no-repeat; }
74 | .filetree span.file { background: url(../img/file.gif) 0 0 no-repeat; }
75 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/site.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | @import 'http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic';
12 |
13 |
14 |
15 | /*******************************
16 | Page
17 | *******************************/
18 |
19 |
20 | /* UI requires Border-Box */
21 | *,
22 | *:before,
23 | *:after {
24 | box-sizing: border-box;
25 | }
26 | html,
27 | body {
28 | height: 100%;
29 | }
30 | html {
31 | font-size: 14px;
32 | }
33 | body {
34 | margin: 0px;
35 | padding: 0px;
36 | min-width: 278px;
37 | background: #f7f7f7;
38 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
39 | font-size: 14px;
40 | line-height: 1.33;
41 | color: rgba(0, 0, 0, 0.8);
42 | font-smoothing: antialiased;
43 | }
44 |
45 |
46 | /*******************************
47 | Headers
48 | *******************************/
49 |
50 | h1,
51 | h2,
52 | h3,
53 | h4,
54 | h5 {
55 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
56 | line-height: 1.33em;
57 | margin: -webkit-calc(2rem - 0.165em ) 0em 1rem;
58 | margin: calc(2rem - 0.165em ) 0em 1rem;
59 | font-weight: bold;
60 | padding: 0em;
61 | }
62 | h1 {
63 | min-height: 1rem;
64 | font-size: 2rem;
65 | }
66 | h2 {
67 | font-size: 1.714rem;
68 | }
69 | h3 {
70 | font-size: 1.28rem;
71 | }
72 | h4 {
73 | font-size: 1.071rem;
74 | }
75 | h5 {
76 | font-size: 1rem;
77 | }
78 |
79 |
80 | /*******************************
81 | Text
82 | *******************************/
83 |
84 | p {
85 | margin: 0em 0em 1em;
86 | line-height: 1.33;
87 | }
88 | p:first-child {
89 | margin-top: 0em;
90 | }
91 | p:last-child {
92 | margin-bottom: 0em;
93 | }
94 |
95 | /*-------------------
96 | Links
97 | --------------------*/
98 |
99 | a {
100 | color: #009fda;
101 | text-decoration: none;
102 | }
103 | a:hover {
104 | color: #00b2f3;
105 | }
106 |
107 |
108 | /*******************************
109 | Highlighting
110 | *******************************/
111 |
112 | ::-webkit-selection {
113 | background-color: rgba(255, 255, 160, 0.4);
114 | color: rgba(0, 0, 0, 0.8);
115 | }
116 | ::-moz-selection {
117 | background-color: rgba(255, 255, 160, 0.4);
118 | color: rgba(0, 0, 0, 0.8);
119 | }
120 | ::selection {
121 | background-color: rgba(255, 255, 160, 0.4);
122 | color: rgba(0, 0, 0, 0.8);
123 | }
124 |
125 |
126 | /*******************************
127 | Global Overrides
128 | *******************************/
129 |
130 |
131 |
132 | /*******************************
133 | Site Overrides
134 | *******************************/
135 |
136 |
--------------------------------------------------------------------------------
/server/static/js/jquery.livequery.min.js:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2 | * Dual licensed under the MIT (MIT_LICENSE.txt)
3 | * and GPL Version 2 (GPL_LICENSE.txt) licenses.
4 | *
5 | * Version: 1.1.1
6 | * Requires jQuery 1.3+
7 | * Docs: http://docs.jquery.com/Plugins/livequery
8 | */
9 | (function(a){a.extend(a.fn,{livequery:function(e,d,c){var b=this,f;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(g,h){if(b.selector==h.selector&&b.context==h.context&&e==h.type&&(!d||d.$lqguid==h.fn.$lqguid)&&(!c||c.$lqguid==h.fn2.$lqguid)){return(f=h)&&false}});f=f||new a.livequery(this.selector,this.context,e,d,c);f.stopped=false;f.run();return this},expire:function(e,d,c){var b=this;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(f,g){if(b.selector==g.selector&&b.context==g.context&&(!e||e==g.type)&&(!d||d.$lqguid==g.fn.$lqguid)&&(!c||c.$lqguid==g.fn2.$lqguid)&&!this.stopped){a.livequery.stop(g.id)}});return this}});a.livequery=function(b,d,f,e,c){this.selector=b;this.context=d;this.type=f;this.fn=e;this.fn2=c;this.elements=[];this.stopped=false;this.id=a.livequery.queries.push(this)-1;e.$lqguid=e.$lqguid||a.livequery.guid++;if(c){c.$lqguid=c.$lqguid||a.livequery.guid++}return this};a.livequery.prototype={stop:function(){var b=this;if(this.type){this.elements.unbind(this.type,this.fn)}else{if(this.fn2){this.elements.each(function(c,d){b.fn2.apply(d)})}}this.elements=[];this.stopped=true},run:function(){if(this.stopped){return}var d=this;var e=this.elements,c=a(this.selector,this.context),b=c.not(e);this.elements=c;if(this.type){b.bind(this.type,this.fn);if(e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){a.event.remove(g,d.type,d.fn)}})}}else{b.each(function(){d.fn.apply(this)});if(this.fn2&&e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){d.fn2.apply(g)}})}}}};a.extend(a.livequery,{guid:0,queries:[],queue:[],running:false,timeout:null,checkQueue:function(){if(a.livequery.running&&a.livequery.queue.length){var b=a.livequery.queue.length;while(b--){a.livequery.queries[a.livequery.queue.shift()].run()}}},pause:function(){a.livequery.running=false},play:function(){a.livequery.running=true;a.livequery.run()},registerPlugin:function(){a.each(arguments,function(c,d){if(!a.fn[d]){return}var b=a.fn[d];a.fn[d]=function(){var e=b.apply(this,arguments);a.livequery.run();return e}})},run:function(b){if(b!=undefined){if(a.inArray(b,a.livequery.queue)<0){a.livequery.queue.push(b)}}else{a.each(a.livequery.queries,function(c){if(a.inArray(c,a.livequery.queue)<0){a.livequery.queue.push(c)}})}if(a.livequery.timeout){clearTimeout(a.livequery.timeout)}a.livequery.timeout=setTimeout(a.livequery.checkQueue,20)},stop:function(b){if(b!=undefined){a.livequery.queries[b].stop()}else{a.each(a.livequery.queries,function(c){a.livequery.queries[c].stop()})}}});a.livequery.registerPlugin("append","prepend","after","before","wrap","attr","removeAttr","addClass","removeClass","toggleClass","empty","remove","html");a(function(){a.livequery.play()})})(jQuery);
--------------------------------------------------------------------------------
/server/templates/template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {%- block temp -%}
4 | {%- set Sid_number = 20100 -%} {# define the site_number #}
5 |
6 | {%- set Fid_number = Sid_number+ 1 -%} {# define the filter_number #}
7 | {% for filter_item in data2 %} {# to handle for each url #}
8 |
9 |
10 | {%- set info_flag = 1 -%} {# Sourcefrom and CoordType print only once for all the four locations #}
11 | {% for locat_key, locat_val in filter_item['locations'].items() %} {# to handle for each Location (requestHead/requestBody/responseHead/responseBody) #}
12 |
13 | {%- if info_flag %}
14 |
15 |
16 | {%- set info_flag = 0 -%}
17 | {%- endif -%}
18 |
19 | {#对infoname为空的元组进行递归使用for循环(加上recursive修饰、loop),else否则进行赋值#}
20 | {% for pat_item in locat_val recursive %} {# 对每一个infoname为空的处理 #} {# regex要嵌套 #}
21 | {%- if pat_item['infoname'] == None %}
22 | {# 这个regex与endfor pat_item前的配对 #}
23 | {{ loop( pat_item['regex']) }}
24 | {# 与每一个infoname为空的regex相对应 #}
25 | {%- else %} {# 对infoname不为空的进行赋值 #}
26 |
27 | {%- endif %}
28 | {% endfor %}
29 |
30 | {% else %}
31 | {{ "Something Error! " }}
32 | {% print 'Errors occur in the content of location'+ '\n' %}
33 | {% endfor %}
34 |
35 |
36 |
39 |
40 | {%- set Fid_number = Fid_number+ 1 -%}
41 | {% endfor %}
42 | {#{% else %}
43 | {% print 'Errors occur in the content of URL iteration'+ '\n' %}
44 | {% endfor %} #}
45 |
46 | {% endblock temp -%}
47 |
48 |
--------------------------------------------------------------------------------
/server/static/components/divider.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.grid>.ui.divider{font-size:1rem}.ui.horizontal.divider{position:relative;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{position:absolute;content:'';z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.horizontal.divider:before{margin-left:-webkit-calc(-50% - 1em);margin-left:calc(-50% - 1em)}.ui.horizontal.divider:after{margin-left:1em}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:'';z-index:3;border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(255,255,255,.2);width:0;height:-webkit-calc(100% - 1rem);height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{position:relative;margin:1rem 0;left:50%;height:auto;overflow:hidden;line-height:1;text-align:center}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{position:absolute;left:auto;content:'';z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{margin-left:-51%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{margin-left:1em}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(0,0,0,.15)!important;border-bottom-color:rgba(255,255,255,.15)!important;border-left-color:rgba(0,0,0,.15)!important;border-right-color:rgba(255,255,255,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:1rem}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/divider.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.grid>.ui.divider{font-size:1rem}.ui.horizontal.divider{position:relative;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{position:absolute;content:'';z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.horizontal.divider:before{margin-left:-webkit-calc(-50% - 1em);margin-left:calc(-50% - 1em)}.ui.horizontal.divider:after{margin-left:1em}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:'';z-index:3;border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(255,255,255,.2);width:0;height:-webkit-calc(100% - 1rem);height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{position:relative;margin:1rem 0;left:50%;height:auto;overflow:hidden;line-height:1;text-align:center}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{position:absolute;left:auto;content:'';z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.2)}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{margin-left:-51%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{margin-left:1em}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(0,0,0,.15)!important;border-bottom-color:rgba(255,255,255,.15)!important;border-left-color:rgba(0,0,0,.15)!important;border-right-color:rgba(255,255,255,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:1rem}
--------------------------------------------------------------------------------
/server/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Pcap-Analyzer
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
29 |
32 |
37 |
48 |
49 |
50 |
51 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/server/static/components/colorize.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,n,i,t){"use strict";e.fn.colorize=function(n){var i=e.extend(!0,{},e.fn.colorize.settings,n),a=arguments||!1;return e(this).each(function(n){var o,r,c,s,d,g,u,l,m=e(this),f=e("")[0],h=e("")[0],p=e("")[0],v=new Image,w=i.colors,b=(i.paths,i.namespace),y=i.error,C=m.data("module-"+b);return l={checkPreconditions:function(){return l.debug("Checking pre-conditions"),!e.isPlainObject(w)||e.isEmptyObject(w)?(l.error(y.undefinedColors),!1):!0},async:function(e){i.async?setTimeout(e,0):e()},getMetadata:function(){l.debug("Grabbing metadata"),s=m.data("image")||i.image||t,d=m.data("name")||i.name||n,g=i.width||m.width(),u=i.height||m.height(),(0===g||0===u)&&l.error(y.undefinedSize)},initialize:function(){l.debug("Initializing with colors",w),l.checkPreconditions()&&l.async(function(){l.getMetadata(),l.canvas.create(),l.draw.image(function(){l.draw.colors(),l.canvas.merge()}),m.data("module-"+b,l)})},redraw:function(){l.debug("Redrawing image"),l.async(function(){l.canvas.clear(),l.draw.colors(),l.canvas.merge()})},change:{color:function(e,n){return l.debug("Changing color",e),w[e]===t?(l.error(y.missingColor),!1):(w[e]=n,void l.redraw())}},canvas:{create:function(){l.debug("Creating canvases"),f.width=g,f.height=u,h.width=g,h.height=u,p.width=g,p.height=u,o=f.getContext("2d"),r=h.getContext("2d"),c=p.getContext("2d"),m.append(f),o=m.children("canvas")[0].getContext("2d")},clear:function(){l.debug("Clearing canvas"),c.fillStyle="#FFFFFF",c.fillRect(0,0,g,u)},merge:function(){return e.isFunction(o.blendOnto)?(o.putImageData(r.getImageData(0,0,g,u),0,0),void c.blendOnto(o,"multiply")):void l.error(y.missingPlugin)}},draw:{image:function(e){l.debug("Drawing image"),e=e||function(){},s?(v.src=s,v.onload=function(){r.drawImage(v,0,0),e()}):(l.error(y.noImage),e())},colors:function(){l.debug("Drawing color overlays",w),e.each(w,function(e,n){i.onDraw(c,d,e,n)})}},debug:function(e,n){i.debug&&(n!==t?console.info(i.name+": "+e,n):console.info(i.name+": "+e))},error:function(e){console.warn(i.name+": "+e)},invoke:function(n,a,o){var r;return o=o||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==t&&(n=n.split("."),e.each(n,function(n,t){return e.isPlainObject(C[t])?(C=C[t],!0):e.isFunction(C[t])?(r=C[t],!0):(l.error(i.error.method),!1)})),e.isFunction(r)?r.apply(a,o):!1}},C!==t&&a?("invoke"==a[0]&&(a=Array.prototype.slice.call(a,1)),l.invoke(a[0],this,Array.prototype.slice.call(a,1))):void l.initialize()}),this},e.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/colorize.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,n,i,t){"use strict";e.fn.colorize=function(n){var i=e.extend(!0,{},e.fn.colorize.settings,n),a=arguments||!1;return e(this).each(function(n){var o,r,c,s,d,g,u,l,m=e(this),f=e("")[0],h=e("")[0],p=e("")[0],v=new Image,w=i.colors,b=(i.paths,i.namespace),y=i.error,C=m.data("module-"+b);return l={checkPreconditions:function(){return l.debug("Checking pre-conditions"),!e.isPlainObject(w)||e.isEmptyObject(w)?(l.error(y.undefinedColors),!1):!0},async:function(e){i.async?setTimeout(e,0):e()},getMetadata:function(){l.debug("Grabbing metadata"),s=m.data("image")||i.image||t,d=m.data("name")||i.name||n,g=i.width||m.width(),u=i.height||m.height(),(0===g||0===u)&&l.error(y.undefinedSize)},initialize:function(){l.debug("Initializing with colors",w),l.checkPreconditions()&&l.async(function(){l.getMetadata(),l.canvas.create(),l.draw.image(function(){l.draw.colors(),l.canvas.merge()}),m.data("module-"+b,l)})},redraw:function(){l.debug("Redrawing image"),l.async(function(){l.canvas.clear(),l.draw.colors(),l.canvas.merge()})},change:{color:function(e,n){return l.debug("Changing color",e),w[e]===t?(l.error(y.missingColor),!1):(w[e]=n,void l.redraw())}},canvas:{create:function(){l.debug("Creating canvases"),f.width=g,f.height=u,h.width=g,h.height=u,p.width=g,p.height=u,o=f.getContext("2d"),r=h.getContext("2d"),c=p.getContext("2d"),m.append(f),o=m.children("canvas")[0].getContext("2d")},clear:function(){l.debug("Clearing canvas"),c.fillStyle="#FFFFFF",c.fillRect(0,0,g,u)},merge:function(){return e.isFunction(o.blendOnto)?(o.putImageData(r.getImageData(0,0,g,u),0,0),void c.blendOnto(o,"multiply")):void l.error(y.missingPlugin)}},draw:{image:function(e){l.debug("Drawing image"),e=e||function(){},s?(v.src=s,v.onload=function(){r.drawImage(v,0,0),e()}):(l.error(y.noImage),e())},colors:function(){l.debug("Drawing color overlays",w),e.each(w,function(e,n){i.onDraw(c,d,e,n)})}},debug:function(e,n){i.debug&&(n!==t?console.info(i.name+": "+e,n):console.info(i.name+": "+e))},error:function(e){console.warn(i.name+": "+e)},invoke:function(n,a,o){var r;return o=o||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==t&&(n=n.split("."),e.each(n,function(n,t){return e.isPlainObject(C[t])?(C=C[t],!0):e.isFunction(C[t])?(r=C[t],!0):(l.error(i.error.method),!1)})),e.isFunction(r)?r.apply(a,o):!1}},C!==t&&a?("invoke"==a[0]&&(a=Array.prototype.slice.call(a,1)),l.invoke(a[0],this,Array.prototype.slice.call(a,1))):void l.initialize()}),this},e.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/server/static/components/feed.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.feed{margin:1em 0}.ui.feed:first-child,.ui.feed:last-child{margin-top:0}.ui.feed>.event{display:table;width:100%;padding:.5rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:table-cell;width:2.5em;height:2.5em;vertical-align:top;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{padding:.5em 0 .5em 1.25em}.ui.feed>.event>.content{display:table-cell;vertical-align:top;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.8)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:2em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:2em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.875em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.8)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:.5em 1em;border-left:3px solid rgba(0,0,0,.2);font-size:1em;max-width:500px;line-height:1.33}.ui.feed>.event>.content .meta{display:inline-block;font-size:.875em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .2s ease;transition:color .2s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon,.ui.feed>.event>.content .meta>.icon:hover{color:rgba(0,0,0,.8)}.ui.small.feed{font-size:.9em}.ui.feed{font-size:1em}.ui.large.feed{font-size:1.1em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/feed.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.feed{margin:1em 0}.ui.feed:first-child,.ui.feed:last-child{margin-top:0}.ui.feed>.event{display:table;width:100%;padding:.5rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:table-cell;width:2.5em;height:2.5em;vertical-align:top;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{padding:.5em 0 .5em 1.25em}.ui.feed>.event>.content{display:table-cell;vertical-align:top;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.8)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:2em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:2em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.875em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.8)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:.5em 1em;border-left:3px solid rgba(0,0,0,.2);font-size:1em;max-width:500px;line-height:1.33}.ui.feed>.event>.content .meta{display:inline-block;font-size:.875em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .2s ease;transition:color .2s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon,.ui.feed>.event>.content .meta>.icon:hover{color:rgba(0,0,0,.8)}.ui.small.feed{font-size:.9em}.ui.feed{font-size:1em}.ui.large.feed{font-size:1.1em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/js/upload.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | $('select.dropdown').dropdown();
4 |
5 | $('#upload-nav').addClass('active');
6 |
7 | $('.ui.checkbox').checkbox();
8 |
9 | $('#delete-button').on('click', function(){
10 | $('.small.del.modal').modal({
11 | closable : true,
12 | allowMultiple: false,
13 | onDeny : function(){
14 | return true;
15 | },
16 | onApprove : function() {
17 | var delCheckbox = $("input[name='checkoption']:checked");
18 | var size = delCheckbox.size();
19 | if(size > 0){
20 | var params = "";
21 | for(var i=0;i 0){
37 | var params = "";
38 | for(var i=0;i 0){
49 | var params = "";
50 | for(var i=0;i 30000000) { // 2mb
67 | alert('Max Size is 30 MB!');
68 | goUpload = false;
69 | }
70 | if (goUpload == true) {
71 | data.submit();
72 | }
73 | },
74 | progressall: function (e, data) {
75 | $('.progress').progress({percent:1});
76 | var progressbar = parseInt(data.loaded / data.total * 100, 10);
77 | console.log(progressbar);
78 | $('.progress').progress({percent:progressbar});
79 | },
80 | done: function (e, data) {
81 | if (data['textStatus']=="success")
82 | $("#progresslabel").append("Upload OK!");
83 | $('#fileupload').attr({"disabled":"disabled"});
84 | $('.small.ok.modal').modal('show');
85 | history.go(0);
86 | },
87 | });
88 |
89 | });
90 |
--------------------------------------------------------------------------------
/server/static/components/loader.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.loader:before{position:absolute;content:'';top:0;left:50%;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after{position:absolute;content:'';top:0;left:50%;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.loader:after,.ui.loader:before{width:2.2585em;height:2.2585em;margin:0 0 0 -1.12925em}.ui.mini.loader:after,.ui.mini.loader:before{width:1.2857em;height:1.2857em;margin:0 0 0 -.64285em}.ui.small.loader:after,.ui.small.loader:before{width:1.7142em;height:1.7142em;margin:0 0 0 -.8571em}.ui.large.loader:after,.ui.large.loader:before{width:4.5714em;height:4.5714em;margin:0 0 0 -2.2857em}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:#fff}.ui.dimmer .ui.loader:before{border-color:rgba(255,255,255,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.8)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#aaa transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:1.2857em;height:1.2857em;font-size:.7857em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:1.7142em;height:1.7142em;font-size:.9285em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:2.2585em;height:2.2585em;font-size:1em}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:4.5714em;height:4.5714em;font-size:1.1428em}.ui.mini.text.loader{min-width:1.2857em;padding-top:1.9857em}.ui.small.text.loader{min-width:1.7142em;padding-top:2.4142em}.ui.text.loader{min-width:2.2585em;padding-top:2.9585em}.ui.large.text.loader{min-width:4.5714em;padding-top:5.2714em}.ui.inverted.loader{color:#fff}.ui.inverted.loader:before{border-color:rgba(255,255,255,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;-webkit-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/loader.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.loader:before{position:absolute;content:'';top:0;left:50%;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after{position:absolute;content:'';top:0;left:50%;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.loader:after,.ui.loader:before{width:2.2585em;height:2.2585em;margin:0 0 0 -1.12925em}.ui.mini.loader:after,.ui.mini.loader:before{width:1.2857em;height:1.2857em;margin:0 0 0 -.64285em}.ui.small.loader:after,.ui.small.loader:before{width:1.7142em;height:1.7142em;margin:0 0 0 -.8571em}.ui.large.loader:after,.ui.large.loader:before{width:4.5714em;height:4.5714em;margin:0 0 0 -2.2857em}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:#fff}.ui.dimmer .ui.loader:before{border-color:rgba(255,255,255,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.8)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#aaa transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:1.2857em;height:1.2857em;font-size:.7857em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:1.7142em;height:1.7142em;font-size:.9285em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:2.2585em;height:2.2585em;font-size:1em}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:4.5714em;height:4.5714em;font-size:1.1428em}.ui.mini.text.loader{min-width:1.2857em;padding-top:1.9857em}.ui.small.text.loader{min-width:1.7142em;padding-top:2.4142em}.ui.text.loader{min-width:2.2585em;padding-top:2.9585em}.ui.large.text.loader{min-width:4.5714em;padding-top:5.2714em}.ui.inverted.loader{color:#fff}.ui.inverted.loader:before{border-color:rgba(255,255,255,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;-webkit-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/templates/upload.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | |
11 | | File |
12 | Packets |
13 | Size |
14 | Option |
15 |
16 |
17 |
18 | {% for CapFile in CapFiles %}
19 |
20 | | {{ CapFile.filename }} |
21 | {{ CapFile.filepcap }} |
22 | {{ CapFile.filesize }} |
23 |
24 |
25 |
26 |
27 | |
28 |
29 | {% endfor %}
30 |
31 |
32 |
33 | |
34 |
35 | Analyze
36 |
37 |
38 | Delete
39 |
40 |
41 | Download
42 |
43 | |
44 |
45 |
46 |
47 |
48 |
49 |
52 |
53 |
Are you sure you want to delete these file?
54 |
55 |
56 |
57 | No
58 |
59 |
60 | Yes
61 |
62 |
63 |
64 |
65 |
66 |
67 |
70 |
71 |
File Upload OK!
72 |
73 |
74 |
75 | Yes
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
Upload
90 |
91 |
92 |
93 |
99 |
100 |
101 |
102 |
103 | {% endblock %}
--------------------------------------------------------------------------------
/server/static/components/nag.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Nag
16 | *******************************/
17 |
18 | .ui.nag {
19 | display: none;
20 | opacity: 0.95;
21 | position: relative;
22 | top: 0em;
23 | left: 0px;
24 | z-index: 999;
25 | min-height: 0em;
26 | width: 100%;
27 | margin: 0em;
28 | padding: 0.75em 1em;
29 | background: #555555;
30 | box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
31 | font-size: 1rem;
32 | text-align: center;
33 | color: rgba(0, 0, 0, 0.8);
34 | border-radius: 0em 0em 0.2857rem 0.2857rem;
35 | -webkit-transition: 0.2s background ease;
36 | transition: 0.2s background ease;
37 | }
38 | a.ui.nag {
39 | cursor: pointer;
40 | }
41 | .ui.nag > .title {
42 | display: inline-block;
43 | margin: 0em 0.5em;
44 | color: #ffffff;
45 | }
46 | .ui.nag > .close.icon {
47 | cursor: pointer;
48 | opacity: 0.4;
49 | position: absolute;
50 | top: 50%;
51 | right: 1em;
52 | font-size: 1em;
53 | margin: -0.5em 0em 0em;
54 | color: #ffffff;
55 | -webkit-transition: opacity 0.2s ease;
56 | transition: opacity 0.2s ease;
57 | }
58 |
59 |
60 | /*******************************
61 | States
62 | *******************************/
63 |
64 |
65 | /* Hover */
66 | .ui.nag:hover {
67 | background: #555555;
68 | opacity: 1;
69 | }
70 | .ui.nag .close:hover {
71 | opacity: 1;
72 | }
73 |
74 |
75 | /*******************************
76 | Variations
77 | *******************************/
78 |
79 |
80 | /*--------------
81 | Static
82 | ---------------*/
83 |
84 | .ui.overlay.nag {
85 | position: absolute;
86 | display: block;
87 | }
88 |
89 | /*--------------
90 | Fixed
91 | ---------------*/
92 |
93 | .ui.fixed.nag {
94 | position: fixed;
95 | }
96 |
97 | /*--------------
98 | Bottom
99 | ---------------*/
100 |
101 | .ui.bottom.nags,
102 | .ui.bottom.nag {
103 | border-radius: 0.2857rem 0.2857rem 0em 0em;
104 | top: auto;
105 | bottom: 0em;
106 | }
107 |
108 | /*--------------
109 | White
110 | ---------------*/
111 |
112 | .ui.inverted.nags .nag,
113 | .ui.inverted.nag {
114 | background-color: #f0f0f0;
115 | color: rgba(0, 0, 0, 0.85);
116 | }
117 | .ui.inverted.nags .nag .close,
118 | .ui.inverted.nags .nag .title,
119 | .ui.inverted.nag .close,
120 | .ui.inverted.nag .title {
121 | color: rgba(0, 0, 0, 0.4);
122 | }
123 |
124 |
125 | /*******************************
126 | Groups
127 | *******************************/
128 |
129 | .ui.nags .nag {
130 | border-radius: 0em !important;
131 | }
132 | .ui.nags .nag:last-child {
133 | border-radius: 0em 0em 0.2857rem 0.2857rem;
134 | }
135 | .ui.bottom.nags .nag:last-child {
136 | border-radius: 0.2857rem 0.2857rem 0em 0em;
137 | }
138 |
139 |
140 | /*******************************
141 | Theme Overrides
142 | *******************************/
143 |
144 |
145 |
146 | /*******************************
147 | User Overrides
148 | *******************************/
149 |
150 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/nag.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Nag
16 | *******************************/
17 |
18 | .ui.nag {
19 | display: none;
20 | opacity: 0.95;
21 | position: relative;
22 | top: 0em;
23 | left: 0px;
24 | z-index: 999;
25 | min-height: 0em;
26 | width: 100%;
27 | margin: 0em;
28 | padding: 0.75em 1em;
29 | background: #555555;
30 | box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
31 | font-size: 1rem;
32 | text-align: center;
33 | color: rgba(0, 0, 0, 0.8);
34 | border-radius: 0em 0em 0.2857rem 0.2857rem;
35 | -webkit-transition: 0.2s background ease;
36 | transition: 0.2s background ease;
37 | }
38 | a.ui.nag {
39 | cursor: pointer;
40 | }
41 | .ui.nag > .title {
42 | display: inline-block;
43 | margin: 0em 0.5em;
44 | color: #ffffff;
45 | }
46 | .ui.nag > .close.icon {
47 | cursor: pointer;
48 | opacity: 0.4;
49 | position: absolute;
50 | top: 50%;
51 | right: 1em;
52 | font-size: 1em;
53 | margin: -0.5em 0em 0em;
54 | color: #ffffff;
55 | -webkit-transition: opacity 0.2s ease;
56 | transition: opacity 0.2s ease;
57 | }
58 |
59 |
60 | /*******************************
61 | States
62 | *******************************/
63 |
64 |
65 | /* Hover */
66 | .ui.nag:hover {
67 | background: #555555;
68 | opacity: 1;
69 | }
70 | .ui.nag .close:hover {
71 | opacity: 1;
72 | }
73 |
74 |
75 | /*******************************
76 | Variations
77 | *******************************/
78 |
79 |
80 | /*--------------
81 | Static
82 | ---------------*/
83 |
84 | .ui.overlay.nag {
85 | position: absolute;
86 | display: block;
87 | }
88 |
89 | /*--------------
90 | Fixed
91 | ---------------*/
92 |
93 | .ui.fixed.nag {
94 | position: fixed;
95 | }
96 |
97 | /*--------------
98 | Bottom
99 | ---------------*/
100 |
101 | .ui.bottom.nags,
102 | .ui.bottom.nag {
103 | border-radius: 0.2857rem 0.2857rem 0em 0em;
104 | top: auto;
105 | bottom: 0em;
106 | }
107 |
108 | /*--------------
109 | White
110 | ---------------*/
111 |
112 | .ui.inverted.nags .nag,
113 | .ui.inverted.nag {
114 | background-color: #f0f0f0;
115 | color: rgba(0, 0, 0, 0.85);
116 | }
117 | .ui.inverted.nags .nag .close,
118 | .ui.inverted.nags .nag .title,
119 | .ui.inverted.nag .close,
120 | .ui.inverted.nag .title {
121 | color: rgba(0, 0, 0, 0.4);
122 | }
123 |
124 |
125 | /*******************************
126 | Groups
127 | *******************************/
128 |
129 | .ui.nags .nag {
130 | border-radius: 0em !important;
131 | }
132 | .ui.nags .nag:last-child {
133 | border-radius: 0em 0em 0.2857rem 0.2857rem;
134 | }
135 | .ui.bottom.nags .nag:last-child {
136 | border-radius: 0.2857rem 0.2857rem 0em 0em;
137 | }
138 |
139 |
140 | /*******************************
141 | Theme Overrides
142 | *******************************/
143 |
144 |
145 |
146 | /*******************************
147 | User Overrides
148 | *******************************/
149 |
150 |
--------------------------------------------------------------------------------
/server/static/js/jquery.treeview.async.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Async Treeview 0.1 - Lazy-loading extension for Treeview
3 | *
4 | * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
5 | *
6 | * Copyright (c) 2007 Jörn Zaefferer
7 | *
8 | * Dual licensed under the MIT and GPL licenses:
9 | * http://www.opensource.org/licenses/mit-license.php
10 | * http://www.gnu.org/licenses/gpl.html
11 | *
12 | * Revision: $Id$
13 | *
14 | */
15 |
16 | ;(function($) {
17 |
18 | function load(settings, root, child, container) {
19 | function createNode(parent) {
20 | var current = $("
").attr("id", this.id || "").html("
" + this.text + "").appendTo(parent);
21 | if (this.classes) {
22 | current.children("span").addClass(this.classes);
23 | }
24 | if (this.expanded) {
25 | current.addClass("open");
26 | }
27 | if (this.hasChildren || this.children && this.children.length) {
28 | var branch = $("
").appendTo(current);
29 | if (this.hasChildren) {
30 | current.addClass("hasChildren");
31 | createNode.call({
32 | classes: "placeholder",
33 | text: " ",
34 | children:[]
35 | }, branch);
36 | }
37 | if (this.children && this.children.length) {
38 | $.each(this.children, createNode, [branch])
39 | }
40 | }
41 | }
42 | $.ajax($.extend(true, {
43 | url: settings.url,
44 | dataType: "json",
45 | data: {
46 | root: root
47 | },
48 | success: function(response) {
49 | child.empty();
50 | $.each(response, createNode, [child]);
51 | $(container).treeview({add: child});
52 | }
53 | }, settings.ajax));
54 | /*
55 | $.getJSON(settings.url, {root: root}, function(response) {
56 | function createNode(parent) {
57 | var current = $("
").attr("id", this.id || "").html("
" + this.text + "").appendTo(parent);
58 | if (this.classes) {
59 | current.children("span").addClass(this.classes);
60 | }
61 | if (this.expanded) {
62 | current.addClass("open");
63 | }
64 | if (this.hasChildren || this.children && this.children.length) {
65 | var branch = $("
").appendTo(current);
66 | if (this.hasChildren) {
67 | current.addClass("hasChildren");
68 | createNode.call({
69 | classes: "placeholder",
70 | text: " ",
71 | children:[]
72 | }, branch);
73 | }
74 | if (this.children && this.children.length) {
75 | $.each(this.children, createNode, [branch])
76 | }
77 | }
78 | }
79 | child.empty();
80 | $.each(response, createNode, [child]);
81 | $(container).treeview({add: child});
82 | });
83 | */
84 | }
85 |
86 | var proxied = $.fn.treeview;
87 | $.fn.treeview = function(settings) {
88 | if (!settings.url) {
89 | return proxied.apply(this, arguments);
90 | }
91 | var container = this;
92 | if (!container.children().size())
93 | load(settings, "source", this, container);
94 | var userToggle = settings.toggle;
95 | return proxied.call(this, $.extend({}, settings, {
96 | collapsed: true,
97 | toggle: function() {
98 | var $this = $(this);
99 | if ($this.hasClass("hasChildren")) {
100 | var childList = $this.removeClass("hasChildren").find("ul");
101 | load(settings, this.id, childList, container);
102 | }
103 | if (userToggle) {
104 | userToggle.apply(this, arguments);
105 | }
106 | }
107 | }));
108 | };
109 |
110 | })(jQuery);
--------------------------------------------------------------------------------
/server/static/components/shape.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Shape
16 | *******************************/
17 |
18 | .ui.shape {
19 | position: relative;
20 | display: inline-block;
21 | -webkit-perspective: 2000px;
22 | perspective: 2000px;
23 | }
24 | .ui.shape .sides {
25 | -webkit-transform-style: preserve-3d;
26 | transform-style: preserve-3d;
27 | }
28 | .ui.shape .side {
29 | opacity: 1;
30 | width: 100%;
31 | margin: 0em !important;
32 | -webkit-backface-visibility: hidden;
33 | backface-visibility: hidden;
34 | }
35 | .ui.shape .side {
36 | display: none;
37 | }
38 | .ui.shape .side > * {
39 | -webkit-backface-visibility: visible !important;
40 | backface-visibility: visible !important;
41 | }
42 |
43 |
44 | /*******************************
45 | Types
46 | *******************************/
47 |
48 | .ui.cube.shape .side {
49 | min-width: 15em;
50 | height: 15em;
51 | padding: 2em;
52 | background-color: #e6e6e6;
53 | color: rgba(0, 0, 0, 0.8);
54 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
55 | }
56 | .ui.cube.shape .side > .content {
57 | width: 100%;
58 | height: 100%;
59 | display: table;
60 | text-align: center;
61 | -webkit-user-select: text;
62 | -moz-user-select: text;
63 | -ms-user-select: text;
64 | user-select: text;
65 | }
66 | .ui.cube.shape .side > .content > div {
67 | display: table-cell;
68 | vertical-align: middle;
69 | font-size: 2em;
70 | }
71 |
72 |
73 | /*******************************
74 | Variations
75 | *******************************/
76 |
77 | .ui.text.shape.animating .sides {
78 | position: static;
79 | }
80 | .ui.text.shape .side {
81 | white-space: nowrap;
82 | }
83 | .ui.text.shape .side > * {
84 | white-space: normal;
85 | }
86 |
87 |
88 | /*******************************
89 | States
90 | *******************************/
91 |
92 |
93 | /*--------------
94 | Loading
95 | ---------------*/
96 |
97 | .ui.loading.shape {
98 | position: absolute;
99 | top: -9999px;
100 | left: -9999px;
101 | }
102 |
103 | /*--------------
104 | Animating
105 | ---------------*/
106 |
107 | .ui.shape .animating.side {
108 | position: absolute;
109 | top: 0px;
110 | left: 0px;
111 | z-index: 100;
112 | }
113 | .ui.shape .hidden.side {
114 | opacity: 0.4;
115 | }
116 |
117 | /*--------------
118 | CSS
119 | ---------------*/
120 |
121 | .ui.shape.animating {
122 | -webkit-transition: all 0.6s ease-in-out;
123 | transition: all 0.6s ease-in-out;
124 | }
125 | .ui.shape.animating .sides {
126 | position: absolute;
127 | }
128 | .ui.shape.animating .sides {
129 | -webkit-transition: all 0.6s ease-in-out;
130 | transition: all 0.6s ease-in-out;
131 | }
132 | .ui.shape.animating .side {
133 | -webkit-transition: opacity 0.6s ease-in-out;
134 | transition: opacity 0.6s ease-in-out;
135 | }
136 |
137 | /*--------------
138 | Active
139 | ---------------*/
140 |
141 | .ui.shape .active.side {
142 | display: block;
143 | }
144 |
145 |
146 | /*******************************
147 | Theme Overrides
148 | *******************************/
149 |
150 |
151 |
152 | /*******************************
153 | User Overrides
154 | *******************************/
155 |
156 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/shape.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 |
14 | /*******************************
15 | Shape
16 | *******************************/
17 |
18 | .ui.shape {
19 | position: relative;
20 | display: inline-block;
21 | -webkit-perspective: 2000px;
22 | perspective: 2000px;
23 | }
24 | .ui.shape .sides {
25 | -webkit-transform-style: preserve-3d;
26 | transform-style: preserve-3d;
27 | }
28 | .ui.shape .side {
29 | opacity: 1;
30 | width: 100%;
31 | margin: 0em !important;
32 | -webkit-backface-visibility: hidden;
33 | backface-visibility: hidden;
34 | }
35 | .ui.shape .side {
36 | display: none;
37 | }
38 | .ui.shape .side > * {
39 | -webkit-backface-visibility: visible !important;
40 | backface-visibility: visible !important;
41 | }
42 |
43 |
44 | /*******************************
45 | Types
46 | *******************************/
47 |
48 | .ui.cube.shape .side {
49 | min-width: 15em;
50 | height: 15em;
51 | padding: 2em;
52 | background-color: #e6e6e6;
53 | color: rgba(0, 0, 0, 0.8);
54 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
55 | }
56 | .ui.cube.shape .side > .content {
57 | width: 100%;
58 | height: 100%;
59 | display: table;
60 | text-align: center;
61 | -webkit-user-select: text;
62 | -moz-user-select: text;
63 | -ms-user-select: text;
64 | user-select: text;
65 | }
66 | .ui.cube.shape .side > .content > div {
67 | display: table-cell;
68 | vertical-align: middle;
69 | font-size: 2em;
70 | }
71 |
72 |
73 | /*******************************
74 | Variations
75 | *******************************/
76 |
77 | .ui.text.shape.animating .sides {
78 | position: static;
79 | }
80 | .ui.text.shape .side {
81 | white-space: nowrap;
82 | }
83 | .ui.text.shape .side > * {
84 | white-space: normal;
85 | }
86 |
87 |
88 | /*******************************
89 | States
90 | *******************************/
91 |
92 |
93 | /*--------------
94 | Loading
95 | ---------------*/
96 |
97 | .ui.loading.shape {
98 | position: absolute;
99 | top: -9999px;
100 | left: -9999px;
101 | }
102 |
103 | /*--------------
104 | Animating
105 | ---------------*/
106 |
107 | .ui.shape .animating.side {
108 | position: absolute;
109 | top: 0px;
110 | left: 0px;
111 | z-index: 100;
112 | }
113 | .ui.shape .hidden.side {
114 | opacity: 0.4;
115 | }
116 |
117 | /*--------------
118 | CSS
119 | ---------------*/
120 |
121 | .ui.shape.animating {
122 | -webkit-transition: all 0.6s ease-in-out;
123 | transition: all 0.6s ease-in-out;
124 | }
125 | .ui.shape.animating .sides {
126 | position: absolute;
127 | }
128 | .ui.shape.animating .sides {
129 | -webkit-transition: all 0.6s ease-in-out;
130 | transition: all 0.6s ease-in-out;
131 | }
132 | .ui.shape.animating .side {
133 | -webkit-transition: opacity 0.6s ease-in-out;
134 | transition: opacity 0.6s ease-in-out;
135 | }
136 |
137 | /*--------------
138 | Active
139 | ---------------*/
140 |
141 | .ui.shape .active.side {
142 | display: block;
143 | }
144 |
145 |
146 | /*******************************
147 | Theme Overrides
148 | *******************************/
149 |
150 |
151 |
152 | /*******************************
153 | User Overrides
154 | *******************************/
155 |
156 |
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/views.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # author: le4f.net
4 |
5 | from server import *
6 | from server.func import *
7 |
8 | #主页
9 | @app.route('/')
10 | def index():
11 | return redirect(url_for('upload'), 302)
12 |
13 |
14 | #上传
15 | @app.route('/upload',methods=['GET', 'POST'])
16 | def upload():
17 | if request.method == 'GET':
18 | CapFiles = []
19 | list_file(CapFiles)
20 | return render_template('upload.html',CapFiles=show_entries())
21 | elif request.method == 'POST':
22 | file = request.files['pcapfile']
23 | if file and allowed_file(file.filename):
24 | filename = secure_filename(file.filename) #获取安全文件名,仅支持ascii字符
25 | filename = time.strftime('%Y%m%d_%H%M_',time.localtime(time.time()))+filename
26 | file.save(os.path.join(UPLOAD_FOLDER, filename))
27 | size = os.path.getsize(UPLOAD_FOLDER+filename)
28 | result = (filename, 'PCAP', size)
29 | return simplejson.dumps({"files": [result]})
30 | else:
31 | pass
32 |
33 | #下载
34 | @app.route('/download/
',methods=['GET'])
35 | def download(id):
36 | id = int(id)
37 | db = get_connection()
38 | pcapfile = get_pcap_entries()
39 | file = pcapfile[0]['filename']
40 | return send_file("../"+UPLOAD_FOLDER+file, attachment_filename=file, as_attachment=True)
41 |
42 | #分析包
43 | @app.route('/analyze/',methods= ["GET"])
44 | def analyze(id):
45 | id = int(id)
46 | db = get_connection()
47 | pcapfile = get_pcap_entries(id)
48 | file = pcapfile[0]['filename']
49 | filter = request.args.get('filter')
50 | details = decode_capture_file(file,filter)
51 | pcapstat = get_statistics(file)
52 | ipsrc = get_ip_src(file)
53 | ipdst = get_ip_dst(file)
54 | dstport = get_port_dst(file)
55 | #如生产环境需注意可能存在的XSS
56 | pcapstat['mail'] = get_mail(file)
57 | pcapstat['web'] = get_web(file)
58 | dns,pcapstat['dnstable'] = get_dns(file)
59 | pcapstat['ipsrc']=dict(ipsrc)
60 | pcapstat['ipdst']=dict(ipdst)
61 | pcapstat['dstport']=dict(dstport)
62 | pcapstat['dns']=dict(dns)
63 | try:
64 | return render_template('analyze.html', pcapfile = pcapfile[0], details = details , pcapstat = pcapstat)
65 | except:
66 | details = decode_capture_file(file)
67 | return render_template('analyze.html', pcapfile = pcapfile[0], details = details , pcapstat = pcapstat)
68 |
69 | #获取包细节
70 | @app.route('/packetdetail//',methods= ["GET"])
71 | def packetdetail(id,num):
72 | id = int(id)
73 | db = get_connection()
74 | pcapfile = get_pcap_entries(id)
75 | file = pcapfile[0]['filename']
76 | try:
77 | num = int(num)
78 | return get_packet_detail(file, num), 200
79 | except:
80 | return 0
81 |
82 | #删除包
83 | @app.route('/delete/',methods= ["POST"])
84 | def delete_file(id):
85 | delids = id.split(',')
86 | db = get_connection()
87 | for delid in delids:
88 | try:
89 | delid = int(delid)
90 | except:
91 | print 'Notice : You are being attacked.'
92 | exit()
93 | cur = db.execute('select file from pcap where id = '+ str(delid) + ';')
94 | sql_exec('delete from pcap where id = '+ str(delid) +';')
95 | os.remove(UPLOAD_FOLDER+cur.fetchall()[0][0]);
96 | return 'ok'
97 |
98 | #加载数据库
99 | @app.before_request
100 | def before_request():
101 | g.db = connect_db()
102 |
103 | #关闭数据库
104 | @app.teardown_request
105 | def teardown_request(exception):
106 | if hasattr(g, 'db'):
107 | g.db.close()
--------------------------------------------------------------------------------
/server/static/components/search.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.search{position:relative}.ui.search>.prompt{margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.2;padding:.68571em 1em;font-size:1em;background:#fff;border:1px solid rgba(39,41,43,.15);color:rgba(0,0,0,.8);box-shadow:0 0 transparent inset;-webkit-transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;background:#fff;margin-top:.5em;width:16em;border-radius:.25em;box-shadow:0 1px 3px 1px rgba(0,0,0,.2);z-index:998}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.5em 1em;color:rgba(0,0,0,.8);line-height:1.33;border-bottom:1px solid rgba(39,41,43,.15)}.ui.search>.results .result:last-child{border-bottom:none}.ui.search>.results .result .image{float:right;overflow:hidden;background:0 0;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.9285em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#5bbd72}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.1428em;font-weight:700;color:rgba(0,0,0,.8)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.8)}.ui.search>.results>.action{display:block;border-top:none;background:#f0f0f0;padding:.5em 1em;color:rgba(0,0,0,.8);font-weight:700;text-align:center}.ui.loading.search .input>.icon:before{position:absolute;content:'';top:50%;left:50%;margin:-.64285em 0 0 -.64285em;width:1.2857em;height:1.2857em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>.icon:after{position:absolute;content:'';top:50%;left:50%;margin:-.64285em 0 0 -.64285em;width:1.2857em;height:1.2857em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#fafafa}.ui.search .action:hover{background:#e0e0e0}.ui.search>.results .category.active{background:#f0f0f0}.ui.search>.results .category.active>.name{color:rgba(0,0,0,.8)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:transparent;background:#f0f0f0;box-shadow:3px 0 3px 0 rgba(39,41,43,.15)}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.category.search .results{width:28em}.ui.category.search>.results .category{background:#f0f0f0;box-shadow:none;border-bottom:1px solid rgba(39,41,43,.15);-webkit-transition:background .2s ease,border-color .2s ease;transition:background .2s ease,border-color .2s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category .result{background:#fff;margin-left:100px;border-left:1px solid rgba(39,41,43,.15);border-bottom:1px solid rgba(39,41,43,.15);-webkit-transition:background .2s ease,border-color .2s ease;transition:background .2s ease,border-color .2s ease}.ui.category.search>.results .category .result:last-child{border-bottom:none}.ui.category.search>.results .category>.name{width:100px;background:#f0f0f0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1em;float:1em;float:left;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4)}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.search{font-size:1em}.ui.large.search{font-size:1.1em}
--------------------------------------------------------------------------------
/pcap-analyzer-master/server/static/components/search.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * # Semantic UI
3 | * https://github.com/Semantic-Org/Semantic-UI
4 | * http://www.semantic-ui.com/
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | .ui.search{position:relative}.ui.search>.prompt{margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.2;padding:.68571em 1em;font-size:1em;background:#fff;border:1px solid rgba(39,41,43,.15);color:rgba(0,0,0,.8);box-shadow:0 0 transparent inset;-webkit-transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;background:#fff;margin-top:.5em;width:16em;border-radius:.25em;box-shadow:0 1px 3px 1px rgba(0,0,0,.2);z-index:998}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.5em 1em;color:rgba(0,0,0,.8);line-height:1.33;border-bottom:1px solid rgba(39,41,43,.15)}.ui.search>.results .result:last-child{border-bottom:none}.ui.search>.results .result .image{float:right;overflow:hidden;background:0 0;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.9285em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#5bbd72}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.1428em;font-weight:700;color:rgba(0,0,0,.8)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.8)}.ui.search>.results>.action{display:block;border-top:none;background:#f0f0f0;padding:.5em 1em;color:rgba(0,0,0,.8);font-weight:700;text-align:center}.ui.loading.search .input>.icon:before{position:absolute;content:'';top:50%;left:50%;margin:-.64285em 0 0 -.64285em;width:1.2857em;height:1.2857em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>.icon:after{position:absolute;content:'';top:50%;left:50%;margin:-.64285em 0 0 -.64285em;width:1.2857em;height:1.2857em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#aaa transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#fafafa}.ui.search .action:hover{background:#e0e0e0}.ui.search>.results .category.active{background:#f0f0f0}.ui.search>.results .category.active>.name{color:rgba(0,0,0,.8)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:transparent;background:#f0f0f0;box-shadow:3px 0 3px 0 rgba(39,41,43,.15)}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.category.search .results{width:28em}.ui.category.search>.results .category{background:#f0f0f0;box-shadow:none;border-bottom:1px solid rgba(39,41,43,.15);-webkit-transition:background .2s ease,border-color .2s ease;transition:background .2s ease,border-color .2s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category .result{background:#fff;margin-left:100px;border-left:1px solid rgba(39,41,43,.15);border-bottom:1px solid rgba(39,41,43,.15);-webkit-transition:background .2s ease,border-color .2s ease;transition:background .2s ease,border-color .2s ease}.ui.category.search>.results .category .result:last-child{border-bottom:none}.ui.category.search>.results .category>.name{width:100px;background:#f0f0f0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1em;float:1em;float:left;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4)}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.search{font-size:1em}.ui.large.search{font-size:1.1em}
--------------------------------------------------------------------------------