国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

C#的內(nèi)網(wǎng)穿透學(xué)習(xí)(附源碼)

共 14201字,需瀏覽 29分鐘

 ·

2020-10-18 02:03


轉(zhuǎn)自:~小菜鳥
cnblogs.com/qqljcn/p/13738595.html

如何讓兩臺(tái)處在不同內(nèi)網(wǎng)的主機(jī)直接互連?你需要內(nèi)網(wǎng)穿透!



上圖是一個(gè)非完整版內(nèi)外網(wǎng)通訊圖由內(nèi)網(wǎng)端先發(fā)起,內(nèi)網(wǎng)設(shè)備192.168.1.2:6677發(fā)送數(shù)據(jù)到外網(wǎng)時(shí)候必須經(jīng)過nat會(huì)轉(zhuǎn)換成對(duì)應(yīng)的外網(wǎng)ip+端口,然后在發(fā)送給外網(wǎng)設(shè)備,外網(wǎng)設(shè)備回復(fù)數(shù)據(jù)也是發(fā)給你的外網(wǎng)ip+端口。


這只是單向的內(nèi)去外,那反過來,如果外網(wǎng)的設(shè)備需要主動(dòng)訪問我局域網(wǎng)里的某一個(gè)設(shè)備是無法訪問的,因?yàn)檫@個(gè)時(shí)候還沒做nat轉(zhuǎn)換所以外網(wǎng)不知道你內(nèi)網(wǎng)設(shè)備的應(yīng)用具體對(duì)應(yīng)的是哪個(gè)端口,這個(gè)時(shí)候我們就需要內(nèi)網(wǎng)穿透了,內(nèi)網(wǎng)穿透也叫NAT穿透;


穿透原理


如上圖所示經(jīng)NAT轉(zhuǎn)換后的內(nèi)外網(wǎng)地址+端口,會(huì)緩存一段時(shí)間,在這段時(shí)間內(nèi)192.168.1.2:6677和112.48.69.2020:8899的映射關(guān)系會(huì)一直存在,這樣你的內(nèi)網(wǎng)主機(jī)就得到一個(gè)外網(wǎng)地址,這個(gè)對(duì)應(yīng)關(guān)系又根據(jù)NAT轉(zhuǎn)換方法類型的不同,得用對(duì)應(yīng)的方式實(shí)現(xiàn)打洞,NAT轉(zhuǎn)換方法類型有下列幾種(來源百度百科NAT):


(1)Full cone NAT:即著名的一對(duì)一(one-to-one)NAT。


一旦一個(gè)內(nèi)部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發(fā)自iAddr:port1的包都經(jīng)由eAddr:port2向外發(fā)送。任意外部主機(jī)都能通過給eAddr:port2發(fā)包到iAddr:port1(純天然不用打洞?。?/span>


(2)Address-Restricted cone NAT :限制地址,即只接收曾經(jīng)發(fā)送到對(duì)端的IP地址來的數(shù)據(jù)包。


一旦一個(gè)內(nèi)部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發(fā)自iAddr:port1的包都經(jīng)由eAddr:port2向外發(fā)送。


任意外部主機(jī)(hostAddr:any)都能通過給eAddr:port2發(fā)包到達(dá)iAddr:port1的前提是:iAddr:port1之前發(fā)送過包到hostAddr:any. "any"也就是說端口不受限制(只需知道某個(gè)轉(zhuǎn)換后的外網(wǎng)ip+端口即可。)


3)Port-Restricted cone NAT:類似受限制錐形NAT(Restricted cone NAT),但是還有端口限制。



一旦一個(gè)內(nèi)部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發(fā)自iAddr:port1的包都經(jīng)由eAddr:port2向外發(fā)送。一個(gè)外部主機(jī)(hostAddr:port3)能夠發(fā)包到達(dá)iAddr:port1的前提是:iAddr:port1之前發(fā)送過包到hostAddr:port3.(雙方需要各自知道對(duì)方轉(zhuǎn)換后的外網(wǎng)ip+端口,然后一方先發(fā)一次嘗試連接,另一方在次連接過來的時(shí)候就能直接連通了。)


(4)Symmetric NAT(對(duì)稱NAT)


每一個(gè)來自相同內(nèi)部IP與port的請(qǐng)求到一個(gè)特定目的地的IP地址和端口,映射到一個(gè)獨(dú)特的外部來源的IP地址和端口。


同一個(gè)內(nèi)部主機(jī)發(fā)出一個(gè)信息包到不同的目的端,不同的映射使用外部主機(jī)收到了一封包從一個(gè)內(nèi)部主機(jī)可以送一封包回來(只能和Full cone NAT連,沒法打洞,手機(jī)流量開熱點(diǎn)就是,同一個(gè)本地端口連接不同的服務(wù)器得到的外網(wǎng)第地址和IP不同?。?/span>


例子:

?

下面用一個(gè)例子演示下“受限制錐形NAT”的打洞,實(shí)現(xiàn)了這個(gè)它前面兩個(gè)類型也能通用。對(duì)稱型的話不考慮,打不了洞。


我們知道要實(shí)現(xiàn)兩臺(tái)“受限制錐形NAT”互連重點(diǎn)就是要知道對(duì)方轉(zhuǎn)換后的外網(wǎng)IP+端口,這樣我們可以:

?

1、準(zhǔn)備一臺(tái)Full cone NAT 類型的外網(wǎng)服務(wù)端,接受來自兩個(gè)客戶端的連接,并對(duì)應(yīng)告知對(duì)方ip+端口;

?

2、知道了對(duì)方ip+端口 需要設(shè)置socke:Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);這樣才能端口復(fù)用;目的就是讓連接對(duì)外的端口一致;

?

3、最后,我們可以讓兩臺(tái)客戶端互相連接,或者一臺(tái)先發(fā)一個(gè)請(qǐng)求,打個(gè)洞;另一個(gè)在去連接;

?

代碼:


1、TCP+IOCP方式,相對(duì) “面向?qū)ο蟆钡貙?shí)現(xiàn)穿透!


服務(wù)端 ServerListener類,用SocketAsyncEventArgs:


/// 
/// 打洞服務(wù)端,非常的簡(jiǎn)單,接收兩個(gè)連接并且轉(zhuǎn)發(fā)給對(duì)方;
///

public class ServerListener : IServerListener
{
IPEndPoint EndPoint { get; set; }
//消息委托
public delegate void EventMsg(object sender, string e);
public static object obj = new object();
//通知消息
public event EventMsg NoticeMsg;
//接收事件
public event EventMsg ReceivedMsg;
///
/// 上次鏈接的
///

private Socket Previous;
public ServerListener(IPEndPoint endpoint)
{
this.EndPoint = endpoint;
}
private Socket listener;
public void Start()
{
this.listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var connectArgs = new SocketAsyncEventArgs();
listener.Bind(EndPoint);
listener.Listen(2);
EndPoint = (IPEndPoint)listener.LocalEndPoint;
connectArgs.Completed += OnAccept;
//是否同步就完成了,同步完成需要自己觸發(fā)
if (!listener.AcceptAsync(connectArgs))
OnAccept(listener, connectArgs);
}
byte[] bytes = new byte[400];
private void OnAccept(object sender, SocketAsyncEventArgs e)
{
Socket socket = null;
try
{
var remoteEndPoint1 = e.AcceptSocket.RemoteEndPoint.ToString();
NoticeMsg?.Invoke(sender, $"客戶端:{remoteEndPoint1}連接上我了!\r\n");
SocketAsyncEventArgs readEventArgs = new SocketAsyncEventArgs();
readEventArgs.Completed += OnSocketReceived;
readEventArgs.UserToken = e.AcceptSocket;
readEventArgs.SetBuffer(bytes, 0, 400);
if (!e.AcceptSocket.ReceiveAsync(readEventArgs))
OnSocketReceived(e.AcceptSocket, readEventArgs);
lock (obj)
{
socket = e.AcceptSocket;
//上次有鏈接并且鏈接還”健在“
if (Previous == null||! Previous.Connected)
{
Previous = e.AcceptSocket;
}
else
{
//Previous.SendAsync()..?
Previous.Send(Encoding.UTF8.GetBytes(remoteEndPoint1 + "_1"));
socket.Send(Encoding.UTF8.GetBytes(Previous.RemoteEndPoint.ToString() + "_2"));
NoticeMsg?.Invoke(sender, $"已經(jīng)通知雙方!\r\n");
Previous = null;
}
}
e.AcceptSocket = null;
if (e.SocketError != SocketError.Success)
throw new SocketException((int)e.SocketError);

if(!listener.AcceptAsync(e))
OnAccept(listener, e);
}
catch
{
socket?.Close();
}
}
public void Close()
{
using (listener)
{
// listener.Shutdown(SocketShutdown.Both);
listener.Close();
}
//throw new NotImplementedException();
}
///
/// 此處留有一個(gè)小BUG,接收的字符串大于400的時(shí)候會(huì)有問題;可以參考客戶端修改
///

public void OnSocketReceived(object sender, SocketAsyncEventArgs e)
{
Socket socket = e.UserToken as Socket;
var remoteEndPoint = socket.RemoteEndPoint.ToString();
try
{
if (e.BytesTransferred > 0 && e.SocketError == SocketError.Success)

{
ReceivedMsg?.Invoke(sender, $"收到:{remoteEndPoint}發(fā)來信息:{Encoding.UTF8.GetString(e.Buffer, 0, e.BytesTransferred)}\r\n");

}
else
{
socket?.Close();
NoticeMsg?.Invoke(sender, $"鏈接:{remoteEndPoint}釋放啦!\r\n");
return;
}
if (!socket.ReceiveAsync(e))
OnSocketReceived(socket, e);
}
catch
{
socket?.Close();
}
//{
// if (!((Socket)sender).AcceptAsync(e))
// OnSocketReceived(sender, e);
//}
//catch
//{
// return;
//}
}
}


2、客戶端類 PeerClient用BeginReceive和EndReceive實(shí)現(xiàn)異步;


public class StateObject
{
public Socket workSocket = null;
public const int BufferSize = 100;
public byte[] buffer = new byte[BufferSize];
public List<byte> buffers = new List<byte>();
//是不是和服務(wù)器的鏈接
public bool IsServerCon = false;
}
///
/// 打洞節(jié)點(diǎn)客戶端 實(shí)現(xiàn)的功能:
/// 連接服務(wù)器獲取對(duì)方節(jié)點(diǎn)ip
/// 請(qǐng)求對(duì)方ip(打洞)
/// 根據(jù)條件判斷是監(jiān)聽連接還是監(jiān)聽等待連接
///

public class PeerClient : IPeerClient
{
//ManualResetEvent xxxxDone = new ManualResetEvent(false);
//Semaphore
///
/// 當(dāng)前鏈接
///

public Socket Client { get;private set; }
#region 服務(wù)端
public string ServerHostName { get;private set; }
public int ServerPort { get; private set; }
#endregion

#region 接收和通知事件
public delegate void EventMsg(object sender, string e);
//接收事件
public event EventMsg ReceivedMsg;
//通知消息
public event EventMsg NoticeMsg;
#endregion
//本地綁定的節(jié)點(diǎn)
private IPEndPoint LocalEP;
public PeerClient(string hostname, int port)
{
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this.ServerHostName = hostname;
this.ServerPort = port;
}

///
/// 初始化客戶端(包括啟動(dòng))
///

public void Init()
{
try
{
Client.Connect(ServerHostName, ServerPort);
}
catch (SocketException ex)
{
NoticeMsg?.Invoke(Client, $"連接服務(wù)器失敗!{ex}!\r\n");
throw;
}
catch (Exception ex)
{
NoticeMsg?.Invoke(Client, $"連接服務(wù)器失??!{ex}!\r\n");
throw;
}
NoticeMsg?.Invoke(Client, $"連接上服務(wù)器了!\r\n");
var _localEndPoint = Client.LocalEndPoint.ToString();
LocalEP = new IPEndPoint(IPAddress.Parse(_localEndPoint.Split(':')[0])
, int.Parse(_localEndPoint.Split(':')[1]));
Receive(Client);
}
private void Receive(Socket client)
{
try
{
StateObject state = new StateObject();
state.workSocket = client;
state.IsServerCon = true;
client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
}
catch (Exception e)
{
NoticeMsg?.Invoke(Client, $"接收消息出錯(cuò)了{e}!\r\n");
}
}
private void ReceiveCallback(IAsyncResult ar)
{
try
{
var state = (StateObject)ar.AsyncState;
Socket _client = state.workSocket;
//因?yàn)榈竭@邊的經(jīng)常Connected 還是true
//if (!_client.Connected)
//{
// _client.Close();
// return;
//}
SocketError error = SocketError.Success;
int bytesRead = _client.EndReceive(ar,out error);
if (error == SocketError.ConnectionReset)
{
NoticeMsg?.Invoke(Client, $"鏈接已經(jīng)釋放!\r\n");
_client.Close();
_client.Dispose();
return;
}
if (SocketError.Success!= error)
{
throw new SocketException((int)error);
}
var arr = state.buffer.AsQueryable().Take(bytesRead).ToArray();
state.buffers.AddRange(arr);
if (bytesRead >= state.buffer.Length)
{
_client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
////state.buffers.CopyTo(state.buffers.Count, state.buffer, 0, bytesRead);
//_client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
// new AsyncCallback(ReceiveCallback), state);
}
else
{
var _msg = Encoding.UTF8.GetString(state.buffers.ToArray());
ReceivedMsg?.Invoke(_client, _msg);
if (state.IsServerCon)
{
_client.Shutdown(SocketShutdown.Both);
_client.Close();
int retryCon = _msg.Contains("_1") ? 1 : 100;
_msg = _msg.Replace("_1", "").Replace("_2", "");
TryConnection(_msg.Split(':')[0], int.Parse(_msg.Split(':')[1]), retryCon);
return;
}
state = new StateObject();
state.IsServerCon = false;
state.workSocket = _client;
_client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
}
}
catch (SocketException ex)
{
//10054
NoticeMsg?.Invoke(Client, $"鏈接已經(jīng)釋放!{ex}!\r\n");
}
catch (Exception e)
{
NoticeMsg?.Invoke(Client, $"接收消息出錯(cuò)了2{e}!\r\n");
}
}
///
/// 打洞或者嘗試鏈接
///

private void TryConnection(string remoteHostname, int remotePort,int retryCon)
{
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
var _iPRemotePoint = new IPEndPoint(IPAddress.Parse(remoteHostname), remotePort);
Client.Bind(LocalEP);
System.Threading.Thread.Sleep(retryCon==1?1:3*1000);
for (int i = 0; i < retryCon; i++)
{
try
{
Client.Connect(_iPRemotePoint);
NoticeMsg?.Invoke(Client, $"已經(jīng)連接上:{remoteHostname}:{remotePort}!\r\n");
StateObject state = new StateObject();
state.workSocket = Client;
state.IsServerCon = false;
Client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
return;
}
catch
{
NoticeMsg?.Invoke(Client, $"嘗試第{i+1}次鏈接:{remoteHostname}:{remotePort}!\r\n");
}
}
if (retryCon==1)
{
Listening(LocalEP.Port);
return;
}
NoticeMsg?.Invoke(Client, $"嘗試了{retryCon}次都沒有辦法連接到:{remoteHostname}:{remotePort},涼了!\r\n"); }

///
/// 如果連接不成功,因?yàn)槭孪扔写蚨催^了,根據(jù)條件監(jiān)聽 等待對(duì)方連接來
///

private void Listening(int Port)
{
try
{
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
Client.Bind(new IPEndPoint(IPAddress.Any, Port));Client.Listen((int)SocketOptionName.MaxConnections);
NoticeMsg?.Invoke(Client, $"開始偵聽斷開等待鏈接過來!\r\n");
StateObject state = new StateObject();
state.IsServerCon = false;
var _socket = Client.Accept();//只有一個(gè)鏈接 不用BeginAccept
Client.Close();//關(guān)系現(xiàn)有偵聽
Client = _socket;
state.workSocket = Client;
NoticeMsg?.Invoke(Client, $"接收到來自{Client.RemoteEndPoint}的連接!\r\n");
Client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
}
catch (Exception ex)
{
NoticeMsg?.Invoke(Client, $"監(jiān)聽出錯(cuò)了{ex}涼了!\r\n");
}
//scoket.send
}
///
/// 本例子只存在一個(gè)成功的鏈接,對(duì)成功的連接發(fā)送消息!
///

///
public void Send(string strMsg)
{
byte[] bytes = Encoding.UTF8.GetBytes(strMsg);
Client.BeginSend(bytes, 0, bytes.Length, 0,
new AsyncCallback(SendCallback), Client);
}
private void SendCallback(IAsyncResult ar)
{
try
{
Socket _socket = (Socket)ar.AsyncState;
//if(ar.IsCompleted)
_socket.EndSend(ar);
}
catch (Exception e)
{
NoticeMsg?.Invoke(Client, $"發(fā)送消息出錯(cuò)了{e}!\r\n");
}
}
}


完整代碼:https://gitee.com/qqljcn/zsg_-peer-to-peer


二、面向過程方式


Task+(TcpClient+TcpListener )|(UdpClient)實(shí)現(xiàn) tcp|udp的打洞!這個(gè)就不貼代碼了直接放碼云連接


?https://gitee.com/qqljcn/zsg_-peer-to-peer_-lite


三、說明


1、本人是個(gè)老菜鳥代碼僅供參考,都是挺久以前寫的也沒有經(jīng)過嚴(yán)格的測(cè)試僅能演示這個(gè)例子,有不成熟的地方,煩請(qǐng)各位大神海涵指教;


2、不要都用本機(jī)試這個(gè)例子,本機(jī)不走nat


3、然后udp因?yàn)槭菬o連接的所以打孔成功后不要等太久再發(fā)消息,nat緩存一過就失效了!


4、確定自己不是對(duì)稱型nat的話,如果打洞不成功,那就多試幾次!?


5 、我這個(gè)例子代碼名字叫 PeerToPeer 但不是真的p2p, 微軟提供了p2p的實(shí)現(xiàn) 在using System.Net.PeerToPeer命名空間下。


以上是通過nat的方式,另外還有一種方式是,通過一個(gè)有外網(wǎng)ip的第三方服務(wù)器轉(zhuǎn)發(fā)像 花生殼、nat123這類軟件,也有做個(gè)小程序,并且自己在用以后演示;

回復(fù)?【關(guān)閉】學(xué)關(guān)
回復(fù)?【實(shí)戰(zhàn)】獲取20套實(shí)戰(zhàn)源碼
回復(fù)?【被刪】學(xué)個(gè)
回復(fù)?【訪客】學(xué)
回復(fù)?【小程序】學(xué)獲取15套【入門+實(shí)戰(zhàn)+賺錢】小程序源碼
回復(fù)?【python】學(xué)微獲取全套0基礎(chǔ)Python知識(shí)手冊(cè)
回復(fù)?【2019】獲取2019 .NET 開發(fā)者峰會(huì)資料PPT
回復(fù)?【加群】加入dotnet微信交流群

強(qiáng)烈推薦:超全C#幫助類,提升效率就靠它


那個(gè)挖礦從入門到坐牢的程序員,后來怎么了


瀏覽 81
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 成人网站无码| a国产| 亚洲精品911| 国产高清无码在线观看视频| 欧美在线视频一区二区| 久久99精品久久久久| 胖老板办公室沙发无套爆秘书| 日韩人妻一区二区三区| 日皮视频免费在线观看| 国产精品久久无码| 欧美一级AA大片免费看视频| 俺来俺去www色官网| 91二区三区| 一级a一级a爰片免费免免在线 | www.插逼| 成人无码欧美大片免费看| 玩弄大乳乳妾高潮乳喷视频| 九九热只有精品| 韩国精品无码一区二区三区18| 欧美日韩在线电影| 欧美男人的天堂| 午夜黄色大片| 91精品国产成人做爰观看奶头| 日韩中文无码电影| 五月丁香色色| 囯产伦精一区二区三区四区| 久久舔| 无码免费一区二区三区| 少妇一区二区三区| 中文无码熟妇人妻AV在线| 日本操逼电影| 一区二区视频在线| 白嫩在线| 亚洲日韩欧美一区二区天天天| 日韩无码免费电影| 亚洲天堂国产| 无码专区亚洲| 成人H动漫精品一区二区无码| 日本免费一二三区| 精品国产午夜福利| 国产g蝌蚪| www一个人免费观看视频www| 亚洲成人中文字幕| 亚洲午夜剧场| 婷婷色在线| 在线观看国产黄色| 亚洲va国产天堂va久久en | 久操久操| 丁香五月网| 天天干天天射天天操| 免费看黃色AAAAAA片| 国产精品秘麻豆免费版现看视频| 一级A片免费视频| 午夜激情四射| 特级西西444WWW视频| 成人视频一区| 操逼视频免费网站| 欧美午夜成人一区二区三区| 成年片| 无码专区中文字幕| 免费黄色欧美| 一级性爽AV毛片| 激情午夜av| 婷婷五月天影视| www.AV在线| 日韩中文字幕视频在线观看| 俺去啦俺去啦| 特级西西西88大胆无码| A片在线观看网站| 香蕉午夜视频| 豆花视频一区二区| 日本爱爱免费播放视频| 人人cao| 国产愉拍91九色国产愉拍| 色情片免费看| 99久久久无码国产精品性波多| 成年人视频网| 亚洲精品乱码久久久久久久| 亚洲砖区区免费| www.日韩一区| 色婷五月| 色乱视频| 亚洲无码一二区| 热久久9| 亚洲天堂在线观看免费| 天天干天天日天天色| 欧美三级大片| 一级黄色片在线观看| 亚洲无码小电影| 97超碰人妻| 91大鸡巴| 成人网址| 亚洲AV秘无码一区二三月夜| 97福利| 91精品人妻| 成人片成人网久久蜜桃臀| 麻豆免费福利视频| 亚洲性爱手机版| 欧美精品在线免费| 日日碰狠狠躁久久躁婷婷| 91国产精品在线视频| 成人免费一级视频| 色播网址| a免费在线| 动漫一区二区| 人人做人人做人人做,人人做全句下一 | 九色PORNY国产成人| 777久久久| 亚洲高清在线播放| 韩国AV在线| 91福利在线观看| 久操视频一区二区三区| 亚洲无码aa| 日韩高清无码成人| 国产凹凸视频在线观看| 91国内产香蕉| 久久精品免费电影| 91一级特黄大片| 奇米影视狠狠干| 成人免费看片| 免费AV大全| 天天插天天插| 国产无码一区二区三区| 成人精品一区二区三区视频| 影音先锋AV成人| 成人做爱黄片| 91亚洲国产精品| 操操片| 91热久久| 天天操天天插| 91精品久久香蕉国产线看观看| av女人天堂| 国产精品三级片| 91亚洲国产成人| 国产1024在线| 国产成人精品免高潮在线观看| 日本亲子乱婬一级A片| 潮喷在线观看| 91精品国产日韩91久久久久久| 亚洲天堂视频在线| 国产大鸡巴| 色人阁人妻中文字幕| 欧美99在线| 精品久久无码中文字幕| 老熟女伦一区二区三区| 色色播播| 亚洲AV成人精品日韩在线播放| 操逼的网站| 伊人大香蕉视频| 四虎影库男人天堂| 日本无码毛片| 波多野吉衣高清无码| 北条麻妃在线不卡| 色播婷婷五月天| 午夜爽爽| 另类老妇性bbwbbwbbw| 国产性受XXXXXYX性爽| 中国丰满妇BBwBBwHD| 国产高清久久| 日韩久久综合| 在线第一页| 日韩三级| 成人黄网站免费观看| 中国AV网| 337P人体美鮑高清| 丁香六月综合| 大香蕉中文在线| b逼一区| 成年人免费看视频| 成人免费乱码大片a毛片蜜芽| 91九色国产| 肏屄视频在线| 一区二区无码视频| 在线观看视频日韩| 四虎成人精品永久免费AV九九| va婷婷在线免费观看| 大鸡吧草逼| 一区二区三区四区无码在线| 三级黄色免费网站| 青娱乐最新官网| 高清无码不卡在线观看| 中文有码在线观看| 超碰成人在线观看| xiuxiuav| 人妻熟女88AⅤ| 河南乱子伦视频国产| 奇米色五月| 最好看的MV中文字幕国语电影| 一级操逼视频免费观看| 51福利导航| 国产一a毛一a免费观看| 西西444www无码精品| 日本不卡三区| 亚洲视频1区| 性欧美欧美巨大69| 韩国精品一区二区三区| 亚洲图片欧美色图| 欧美久久国产精品| 黄色操逼片| 欧美色噜噜| 中文天堂网| 春色Av| www.91在线视频| 大骚逼影院| 日韩中文欧美| 久久性爱视频| 伊人久久大香蕉国产| 抽插免费视频| 黄色视频a| 黄色成人网站在线观看免费| 麻豆乱婬一区二区三区| 俺也去com| 日韩色逼| 久草免费电影| 日本操逼网| 午夜免费福利视频| 中文不卡在线| 人人摸人人干人人操| 欧美淫秽视频| 欧美成人精品激情在线观看| 亚洲日韩免费视频| 日韩视频在线观看免费| 人人操成人| 国内精品久久久久久久久98| 91人人草| 欧美操B电影| 走光无码一区二区三区| 国产精品自拍偷拍| 91狠狠综合| 欧美黄片在线免费看| 亚欧洲精品在线视频| 天天添天天操| 日韩亚洲中文在线| 黑人亚洲娇小videos∞| 日本亚洲黄色视频| 色操人| 少妇性受XXXX黑人XYX性爽 | 91视频中文字幕| 激情综合五月天| 人人操人人超碰| 亚洲人成电影网| 91人人妻人人澡人人爽| 懂色av粉嫩AV蜜臀AV| 黄色视频网站在线播放| 69成人免费视频| 国产小视频在线观看| 午夜爱爱免费视频| 亚洲调教| 黄色日本视频| 国产丰满大乳无码免费播放| 欧洲亚洲视频| 男女日皮视频| 曰曰干| 精品一区二区久久久久久久网站| 日本无码在线| 国产乱子伦一区二区三| www.天天射| 天天干夜夜操| 日韩一级内射| 一区在线观看视频| 久久久www| 亚洲欧美国产高清vA在线播放| 俄女兵一级婬片A片| 18成人毛片| 精品乱子伦| 日本乱伦视频| 色色网站视频| 好男人WWW一区二区三区| 日本一级a片| 97精品人妻一区二区三区香蕉农| 北条麻妃99精品| 亚洲AV无码乱码| 全国男人的天堂网站| 六月婷婷激情| 精品久久久久久AV2025| 波多野结衣国产区42部| 黄网在线免费观看| 香蕉大综合| 十八禁视频在线观看网站.www| 欧美性爱中文字幕| 国产一区二区三区四区五区六区七区| 日本特黄AA片免费视频| 一线av| 中文无码不卡| 婷婷六月激情| 日本特黄一级片| 欧美日韩激情视频| 成年人视频网站| 欧美级黑寡妇毛片app| 91欧美日韩综合| 先锋影音资源站av每日资源在线| 色色综合视频| 亚洲无码视频免费观看| 日韩成人免费在线| 97A片在线观看播放| 日本高清中文字幕| 亚洲中文字幕观看| 日韩无码中文字幕| 欧美群交videotv群交| 三级网站免费| 成人久久久久久| 人人上人人干| 18成人毛片| 在线观看视频免费无码免费视频| 在线观看视频一区| 国产九九九视频| 久草免费在线视频| 性爱A级视频| 国产欧美成人| 51成人免费| 天天爱天天爽| 91就要爱爱视频| jizz日韩| 一级欧美一级日韩| 熟女熟妇人妻一区二区三区| 亚洲免费高清视频| 伊人日逼| 久久免费小视频| 国产免费成人在线观看| 亚洲免费观看高清完整版在线| 99久久99久国产黄毛片| 成人理伦A级A片在线论坛| 91成人影片| 婷婷五月天色综合| 欧美日韩91| 久久成人影音先锋| 天天插夜夜操| 91艹艹| 日韩伊人| 97人人操人人干| 97福利在线| 午夜av在线播放| 日本操逼片| 草逼美女| 日韩三级片无码| 无码av亚洲一区二区毛片公司| 五月天久久| 天美果冻麻豆国产一区| 人人干天天操| 国产精品一麻了麻了| 人妻AV一区| 欧美激情网站| 人人妻人人超| 黄色无無| 91丝袜一区二区三区| 乱伦无码高清麻豆视频一区二区 | 人妻公日日澡久久久| 久久精品91| 国产性精品| 波多野结衣高清无码视频| 日本色情网| 五月婷亚洲精品AV天堂| 蜜柚Av| 亚洲成人黄色网| 国产成人综合亚洲| 三级片小说| 动漫操逼视频| 亚洲欧美另类在线| 中文字幕AV在线免费观看| 69成人网站| 中国丰满妇BBwBBwHD| 综合+夜夜| 午夜91| 91激情| 亚洲大片免费看| 人妻丝袜中出北条麻妃| 一级中国毛片| 日韩高清一级免费| 无码成人A片在线观看| 怡红院在线观看| av天堂亚洲| 日韩无码福利| 中文字幕在线免费视频| 性生活无码视频| 亚洲色婷婷| 日本无码成人| 天天天做夜夜夜夜爽无码| 国产精品欧美一区二区三区苍井空 | 中文字幕人妻在线中文乱码怎么解决| 日日干视频| 在线观看亚洲专区| 国产麻豆精品ThePorn| 婷婷色网站| 人妖和人妖互交性XXXX视频 | 五月天啪啪| 嘿咻嘿咻动态图| 中文字幕久久无码| 色五月婷婷激情| 91人妻人人澡人人爽人人精品 | 嫩草视频在线观看| 911国产在线| 国产成人在线免费视频| 韩国无码高清视频| 天天干夜夜爽| 日韩中文字幕网站| 日韩免费在线观看| 国产又粗又长的视频| 欧美激情一级| 国产三级片在线观看| 欧美在线视频播放| 狼友视频免费观看| 一区二区三区无码在线| 久久九九电影| 亚洲一级片| 大地99中文在线观看| 精品交换一区二区三区无码| 成年人黄色片| 日本亲子乱婬一级A片| 懂色午夜福利一区二区三区| 3344在线观看免费下载视频| 国产91www| 99乱伦| 丁香五月激情在线| 精品黄色毛片| 亚洲免费观看高清完整版在va线观| 成人做爰100片免费视频| 免费黄色成人网站| 欧美VA视频| 在线免费无码| 视频一区二区三| 亚洲视频网址| 亚洲A片在线观看| 91丨九色丨老熟女探花| 撸撸操在线视频观看只有精品 | 无码一卡| 亚洲无码。| 亚洲无码视频在线| 日产无码| 强伦人妻一区二区三区视频| 91香蕉| a天堂8在线资源| 成人做爰100片免费着| 北条麻妃久久| 国产精品三| 影音先锋色色| 国产强伦轩免费视频在线| 午夜福利国产| 91网站在线免费观看| 日韩v| a片视频网站| 国产精品AV一区| 国产在线观看免费视频| www九九热| 学生妹一级大片| 成人无码精品| 欧美成人黄色A片| 国产亚洲网| 蜜桃传媒一区二区| 国产一级婬片A片AAA樱花| 操b视频在线播放| 色色加勒比综合| 日韩成人无码电影| 亚洲中文偷拍| 国产三级国产三级国产普通话| 欧美老逼| 亚洲男人的天堂AV| 国产精品视频久久久久| 天天干视频| 97精品人妻一区二区三区在线| 午夜视频18| 婷婷大香蕉| 亚洲视频中文字幕在线观看| 日本黄色免费在线观看| 国产毛片久久久久久国产毛片| 婷婷精品国产a久久综合| 北条麻妃精品在线| 麻豆传媒一区| 亚洲激情小说| 性爱av在线| 一区二区三区水蜜桃| 日韩性爱一区二区| 先锋影音av在线| 日韩偷拍网| 家庭乱伦影视| 国产免费AV片在线无码免费看| 亚洲天堂色| 国产精品丝袜| 中文字幕一区三区人妻视频| 五月丁香在线视频| 亚洲一级黄色视频| 91人妻人人澡人人爽人人玩| 日屄免费视频| 欧美性爱一区| 秋霞中文字幕| 99国产在线观看免费视频| 黄p网站| 亚洲秘无码一区二区三区观看| Av一区二区三区| 91精品久久久久久久久久久久| 麻豆艾秋MD0056在线| 自拍偷拍综合| 免费看国产黄色视频| 日韩一区二区三区无码电影| 久久久久久一| 欧美老妇性猛交| 爱搞搞网| 亚洲青青| 爽爽午国产浪潮AV性色www | 午夜性爱福利视频| 久久草成人网| 伊人久久网站| 欧美日韩中文| 北条麻妃99精品青青久久| 伊人色色综合| 国产熟妇| 免费看成人片| 狠狠色五月亚洲91| 亚洲天堂在线免费观看视频| 4虎亚洲人成人网www| 亚洲高清在线观看视频| www.99av| 国产三级无码视频| 亚洲国产精品18久久久久久| 少妇在线观看| 日本中文字幕在线视频| 欧美伦妇AAAAAA片| 免费的黄片| 日日Av| 国产精品三级片| 无码人妻av黄色一区二区三区 | 天天爽天天操| 一道本无码在线| h片网站在线观看| 女邻居的B好大| 国产精品无码永久免费A片| 黄色片在线看| 亚洲永久视频| 国产精品无码免费视频| 一本之道高清数码大全| 99热6| 91超碰在线观看| 夜夜爽久久精品91| av黄页| 国产乱伦毛片| 97免费在线观看视频| 日逼网站国产| 久操影视| 日本黄网站| 欧美一区二区三区免费| 91黑人丨人妻丨国产丨| 欧美激情久久久| www.色欲av| 大香蕉国产视频| 91久久国产综合| 无码秘人妻一区二区三-百度| 69国产精品无码免费| 国产主播AV| 樱桃码一区二区三区| 大香蕉75| 韩国无码人妻| 日韩a视频| 色婷婷一区二区三区久久| 狠狠色噜噜狠狠狠888米奇视频| 日欧视频| AV一二区| 91超碰在线| 玉米地一级婬片A片| 日本成人精品| 亚州天堂| 欧美3p视频| 亚洲日韩欧美色图| 熟女人妻人妻の视频| 国产喷潮| 91成人情欲影视网| 嫩BBB嫩BBB嫩BBB| 国产一区二区三区免费视频| 玖玖99视频| 黄色视频网站在线看| 靠逼网站免费观看| 黄片网站入口| 1024手机在线观看| 日韩欧AV| 在线观看免费黄色视频| 亚洲精品AⅤ一区二| 久久久久99精品成人网站| 国产精品成人在线观看| 亚洲视频,中文字幕| 久久国色| 欧美一区二区三区在线播放| 97色在线视频| 亚洲AV第一页| 五月天网址| 特黄网站| 精品成人电影| 天天日天天干天天干| 啊啊啊啊啊网站| 自拍视频网| 欧美日韩一区视频| 欧美乱伦内射| 黄色片AA| 精品国产一二三区| 人人妻人人做| 国产精品久久久久久久久久二区三区| 操逼无码| 精品无码一区二区三区爱与| 伊人久久久| 国产在线观看一区二区| 91亚洲欧美| 欧美一级黄| 色色A| 人妻AV无码| 伊香蕉大综综综合| 在线黄色视频网站| 久久久久无码国产精品一区| 午夜福利h| 免费AV播放| 国产精品色婷婷99久久精品| 午夜AV大片| 国产日韩欧美| 一区二区三区久久久| 亚洲人成在线观看| www.青青草| 久久精品三级| 国产成人A| 日本韩国无码| 亚洲无码一区二区三区| 国产AV一二三区| 五月无码| 欧美在线视频播放| 亚洲黄色视频网站在线观看| 日韩av高清| 一区二区三区观看| 狠狠干综合网| 亚洲高清超级无码在线视频观看| 真实白嫖91探花无码| 99热精品免费观看| 国产av综合网| 天天日天天草天天干| 国产视频97| 91大神在线免费观看| 51嘿嘿嘿国产精品伦理| 久久草视频在线播放| 人妻北条麻妃在线| 免费AV播放| 大香蕉操B| 国产寡妇亲子伦一区二区三区四区| 人妻精品一区二区在线| 国产成人片色情AAAA片| 黑人干亚洲人| 亚洲香蕉av| 无码在线视频免费观看| 在线观看高清无码中文字幕| 天天干强奸视频在线综合| 日韩人妻电影| 曰本精品综合网在线| 日韩人妻电影| 国产91在线中日| 在线看片AV| 日韩成人黄色视频| av国产精品| av天堂手机网| 黄色a片网站| 欧美老妇大BBBBXXXX| 亚洲成人一| 热热热热色| 国产精品免费一区二区三区四区视频 | 啪啪视频m3u8| 五月天啪啪视频| 内射视频网| 亚洲日本三级| 国产精品v欧美精品v日韩| 影音先锋无码专区| 尤物视频在线观看视频| 好吊妞视频在线| 日韩激情在线观看| 成人久久av| 91在线无码精品秘入口男同| 国产一区二区三区在线观看免费视频免费视频免费视频 | 日韩在线看片| 天天日天天摸| 激情人妻AV| 亚洲午夜在线观看| 欧美精品成人免码在线| 欧美一区二区三曲的| 亚洲成人小说| 久久午夜福利| 国产精品内射婷婷一级二| 超碰久草| 欧美黄色小说| 国产P片内射天涯海角| 狼人香蕉在线视频| 精品一区二区三区av| 亚洲中文字幕无码爆乳av| 91精品国产亚洲| 免费在线观看黄色网址| 免费的一级片| 蜜臀久久99精品久久久久久婷婷| 久久久久久免费毛片精品| 丁香五月天社区| 欧美XXX黑人XYX性爽| 色天天综合网| 91看片| 天天干天天草| 男人天堂网站| 成人电影亚洲天堂| 亚洲免费在线看| 五月丁香亚洲综合| 十八无码成人免费网站| 天天干天天操天天爽| 精品国产天线2024| 家庭乱伦AV| 日韩中文字码无砖| 天天综合天天干| 欧美精品秘一区二区三区蜜臀| 韩国AV在线| 欧美日逼小视频| 91免费在线视频观看| 91视频免费在线看| 天堂视频在线观看亚洲美女| 超碰极品| 精品无码一区二区三区的天堂| 日韩欧美国产精品| 狼友在线观看| 唐山熟女工棚嗷嗷叫| 欧美成人A片在线观看| 丁香四月婷婷| AV中文字幕电影| 屁屁影院CCYYCOM发布地| 国产乱子伦无码视频免费| 北条麻纪无码视频| 亚洲欧美日韩一区| 一区二区三区四区无码视频| 国产午夜福利视频| 国产AV无码区亚洲| 一级a在线| 久久无码人妻精品一区二区三区| 亚洲男同Gay一区二区| 狠狠躁日日躁夜夜躁A片小说免费| 麻豆高清无码| 亚洲无码精品在线| 国产高清一区| 欧美18禁黄免费网站| jizz免费视频| 国产又爽又黄网站免费观看| 操逼视频网站免费观看| 91视频www| 亲子乱一区二区三区视频| 婷婷五月亚洲| 女色综合| 69伊人| 国产一级AV免费观看| 国产口爆在线观看| 九哥草逼网| 日韩高清无码一区| 综合欧美国产视频二区| 国产91页| 日本国产欧美| 久久精品视频网站| 亚洲综合国产| 欧美成人视频在线观看| 青青青在线| 亚洲操屄| 青青草伊人大香蕉| 国产在线视频一区二区三区| 怡红院男人的天堂| 成人无码视频| 国产精品国产三级片| 国产成人自拍网| 日韩成人观看| 亚洲无码视频在线看| 亚洲综合自拍| C逼| 午夜亚洲AⅤ无码高潮片苍井空| 在线观看成人18| 麻豆AV在线观看| 九九大香蕉| 看90后操B| 日本有码中文字幕| 2019人人操| 亚洲最大无码| 你懂的视频| 亚洲va欧美va天堂v国产综合| 国产中文字幕在线免费观看| 高潮流水视频| 青青青草视频| 国产无码一区二区| 亚洲日韩毛片| 抽插影院| 日本欧美黄色| 大地影院在线资源观看| 老鸭窝av免费入口在线观看| 欧美色图狠狠干| 色欲网址| 日逼综合| 国产精品久久久久久久久久| 亚洲女人天堂AV| 精品无码视频在线| 日本毛片视频| 影音先锋aV成人无码电影| 999成人电影| 精品免费一区二区三区四区| 91无码秘蜜桃一区二区三区-百度| Av大香蕉| 就去se超碰| 日本中文无码| 亚洲国产无码在线观看| 日韩免费无码视频| 高清无码在线视频| 爽爽午国产浪潮AV性色www | 五月在线| 免费av网站| 骚BBBB槡BBB槡BBB| 毛片A级| 毛片视频网站| 详情:绿帽夫妻多人运动开淫啪-91n | 亚洲精品国偷拍自产在线观看蜜桃 | 成人国产精品秘在线看| 久草香蕉| 99在线视频免费| 蜜桃久久久| 3级片网站| 欧美一级黃色A片免费看蜜桃熟了 一级a一级a免费观看免免黄‘/ | 激情五月俺也去| 在线免费看a片| 大香蕉视频在线观看| 成人性生交大片免费看小芳 | 国产成人无码永久免费| 91香蕉| 日韩av在线看| av天堂无码| 大肉大捧一进一出两腿| 欧美成人不卡| 无码电影免费观看| 日韩色吧| 91视频在线观看网| 18网站视频| 欧美香蕉视频| 精品蜜桃一区二区三区| a片小视频| 欧美老妇操逼视频| 高清无码免费观看| 日韩操大屌| 2025中文字幕在线| 最近2021中文字幕免费| 激情麻豆论坛| 免费看黄色毛片| 日本五十路熟女视频| 操逼视频在线| 特黄特色一级特黄大片| 91丝袜一区在线观看| 天天干,夜夜操| 91N视频| 玖玖爱在线精品视频| 不卡视频在线| 西西人体大胆ww4444图片| 草逼视频网站| 躁BBB躁BBB添BBBBBB| 日本成人午夜福利| 国产91在线一区| 操片免费| 超碰超爽| 自拍偷拍亚洲无码| 日韩成人高清无码| 成人毛片在线播放免费| 青青草娱乐视频| 免费a视频在线观看| 大吊妞| 91九色蝌蚪91POR成人| 图片区小说区区亚洲五月| 亚洲成人一区二区在线观看| 米奇狠狠干| 青青草超碰在线| 一区二区三区国产视频| 激情五月俺也去| 亚洲成人天堂| 中文大香蕉视频| 特级西西444WWW无码视频兔费看| 高清av无码| 人人操人人干人人| 午夜神马影院| 国产高清不卡| 亚洲人成77777| 欧美成人毛片一级A片| 婷婷操逼| 99热99re6国产线播放| 草草久久久无码国产专区的优势 | 大香蕉视频在线观看| 国产精品中文字幕在线观看 | 自拍视频在线观看| 翔田千里无码| 亚洲免费AV在线| 日本乱伦中文字幕| 情趣视频网站| 人人爽人人操人人| 亚洲手机在线| 怡红院成人AV| 国产精品高潮无套内谢| 777AV| 国产成人精品无码片子的价格| 亚洲五月丁香| 日韩一级电影在线| 国产视频激情| 91精品久久久久久久| 先锋AV资源在线| 亚洲AV无码乱码精| 成人做爰100片免费-百度| 人人人人人人人人操| 欧美成人无码A片免费| 亚洲无码伊人| 人人操综合|