直接在命令终端输入
格式:python -m SimpleHTTPServer 开启的端口
```python
python -m SimpleHTTPServer 8000 &
```
通过网页访问该端口,可以获取终端位置文件夹下的内容
##反弹Shell:
```python
socket.fileno() 创建一个文件描述符
传递调用该文件描述符给标准输入输出
os.dup2(socket.fileno(),0) 0:stdin
os.dup2(socket.fileno(),1) 1:stdout
os.dup2(socket.fileno(),2) 2:stderr
```

**同样是**
>子线程1做创建线程
子线程2做通讯
主线程做连接


多进程服务器模型的缺点:1.每个进程处理完连接后需要对进程进行回收 2.每台pc对进程的开启数量是有限的

##select 模块:

select 抓取套接字按他们的类别将他们放入rlist,wlist或x- 阅读剩余部分 -

如果有多个客户端请求连接,服务器只能同时接收一个数据连接,只有当前一个连接结束后下一个数据传输才能建立,当多个客户端向服务端连接时,其实每个客户端已经建立了连接,只是并没有建立传输数据的通道而已

先创建一个子进程- 阅读剩余部分 -
##urllib的各种方法:
```python
python2 导入: import urllib2
python3 导入: import urllib.request
python2 爬取: urllib2.urlopen(网址)
python3 爬取: urllib.request.urlopen(网址)
```
1\. urlopen : 爬取网站 (在没有读取的情况下是以文件的方式存在)
```python
格式: urlopen(网址)
- 阅读剩余部分 -


服务端不需要设置listen,接受信息,客户端不需要连接ip
```python
发送信息:sendto('message',('ip',port))
接收信息:recvfrom(信息长度)
```
- 阅读剩余部分 -
##模块:telnetlib
---
telnet连接:
```python
t=telnetlib.Telnet('192.168.1.10',port=23,timeout=1)
t.set_debuglevel(2)
```
telnet登录:
```python
t.read_until('l')
t.write('admin\n')
t.read_until('P')
t.write('123456\n')
```
命令执行- 阅读剩余部分 -

##创建服务端和客户端:
####导入模块:
```python
from socket import *
```
---
####服务端(接收方):
```python
1.创建套接字 s = socket(AF_INET, SOCK_STREAM) | 也可以写成:s=socket(2,1)
2.绑定ip和端口- 阅读剩余部分 -
##分步讲解:
```python
1.导入模块
import paramiko
2.创建SSH对象
ssh = paramiko.SSHClient()
3.设置策略自动添加和保存目标SSH服务器的SSH密码,即连接时第一次登录的认证信息
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
4.连接服务器
ssh.connect(IP,Port,User,Passwd,timeou- 阅读剩余部分 -
```python
1.导入模块:
import pymssql
2.数据库连接:
conn=pymssql.connect(host='192.168.1.130:1433',user='sa',password='ggg',database='Test')
3.得到一个游标对象
cur=conn.cursor()
4.执行SQL语句:
cur.execute(“SQL语句”)
conn.commit() #如果执行的是修改语句,则需要添加此条- 阅读剩余部分 -