小编Ton*_*nyM的帖子

从字符串或url解析主机名和端口

我可以给出以下任何格式的字符串:

我想提取主机,如果有一个端口.如果端口值不存在,我希望它默认为80.

我已经尝试了urlparse,它适用于url,但不适用于其他格式.例如,当我在hostname:port上使用urlparse时,它将主机名放在scheme而不是netloc中.

我会很高兴使用urlparse和正则表达式的解决方案,或者可以处理这两种格式的单个正则表达式.

python regex parsing

21
推荐指数
4
解决办法
3万
查看次数

使用C#可以使用服务器名称指示(SNI)建立SSL连接吗?

我目前有这个代码,它与服务器建立SSL连接:

using (client = new TcpClient())
{

    client.Connect(Hostname, Port);
    var callback = new RemoteCertificateValidationCallback(ValidateServerCertificate);


    using (stream = new SslStream(client.GetStream(), false, callback))
    {
        stream.AuthenticateAsClient(Hostname);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我不认为它支持SNI,因为从SNI配置的服务器返回了错误的证书.无论如何使用SNI进行SSL连接?

我正在使用.NET 2(如果需要,愿意升级).我使用的是Windows 7,但是如果可能的话,希望该软件可以在其他平台上运行,例如Windows 2008.

c# ssl sni

12
推荐指数
1
解决办法
4520
查看次数

为什么我不能发送这个IP包?

我正在尝试使用c#发送IP数据包.

    destAddress = IPAddress.Parse("192.168.0.198"),
    destPort = 80;

    // Create a raw socket to send this packet
    rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);

    // Bind the socket to the interface specified
    IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.0.140"),0);
    rawSocket.Bind(iep);

    // Set the HeaderIncluded option since we include the IP header
    rawSocket.SetSocketOption( socketLevel, SocketOptionName.HeaderIncluded, 1 );

    // Send the packet!
    int rc = rawSocket.SendTo(builtPacket, new IPEndPoint(destAddress, destPort));
    Console.WriteLine("sent {0} bytes to {1}", rc, destAddress.ToString());
Run Code Online (Sandbox Code Playgroud)

builtPacket的内容如下所示.这是一个包含TCP SYN数据包的IP数据包(这就是我认为我创建的).

45 00 00 28 00 00 00 00 …

c# sockets tcp raw-sockets

8
推荐指数
1
解决办法
1131
查看次数

如何在Django中通过URL模式重定向?

我有一个基于Django的网站。我想将其中包含模式的URL重定向servertest到相同的URL,但servertest应替换为server-test

因此,例如,以下URL将被映射为重定向,如下所示:

http://acme.com/servertest/                        =>  http://acme.com/server-test/ 

http://acme.com/servertest/www.example.com         =>  http://acme.com/server-test/www.example.com

http://acme.com/servertest/www.example.com:8833    =>  http://acme.com/server-test/www.example.com:8833 
Run Code Online (Sandbox Code Playgroud)

我可以使用urls.py中的以下行来获取第一个示例:

http://acme.com/servertest/                        =>  http://acme.com/server-test/ 

http://acme.com/servertest/www.example.com         =>  http://acme.com/server-test/www.example.com

http://acme.com/servertest/www.example.com:8833    =>  http://acme.com/server-test/www.example.com:8833 
Run Code Online (Sandbox Code Playgroud)

不确定如何为其他用户执行此操作,因此仅替换了URL的servetest部分。

python django django-urls

5
推荐指数
2
解决办法
6163
查看次数

通过 SSL 连接到 SQL Server 并获取服务器证书

我想连接到在端口 1433 上配置 SSL 的 SQL Server 并获取其证书。我不需要执行任何 SQL,我只想设置 SSL 连接并获取 SQL Server 的证书。

以下代码可以获取 Web 服务器证书,但无法获取 SQL Server 证书 - 连接在超时后失败。

using (client = new TcpClient())
{
    client.Connect(Hostname, Port);
    var callback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

    using (stream = new SslStream(client.GetStream(), false, callback))
    {
        stream.AuthenticateAsClient(Hostname);
    }
}
Run Code Online (Sandbox Code Playgroud)

SQL Server 客户端是否必须使用一些初始协商才能使服务器切换到 SSL?换句话说,SQL Server 是否执行类似于 STARTTLS 与 SMTP 配合使用的操作?

我需要对上面的代码执行什么操作才能让 SQL Server 返回其证书?

c# sql-server ssl

5
推荐指数
1
解决办法
1873
查看次数

标签 统计

c# ×3

python ×2

ssl ×2

django ×1

django-urls ×1

parsing ×1

raw-sockets ×1

regex ×1

sni ×1

sockets ×1

sql-server ×1

tcp ×1