using NewLife.Log;
using NewLife.Net;
using Xunit;
namespace XUnitTest.Net;
public class TcpConnectionInformation2Tests
{
[Fact]
public void GetAllTcp()
{
var tcps = TcpConnectionInformation2.GetWindowsTcpConnections();
Assert.NotNull(tcps);
Assert.True(tcps.Length > 0);
Assert.Contains(tcps, e => e.ProcessId > 0);
foreach (var item in tcps)
{
XTrace.WriteLine("{0}\t{1}\t{2}\t{3}", item.LocalEndPoint, item.RemoteEndPoint, item.State, item.ProcessId);
}
}
[Fact]
public void GetLinuxTcpConnections()
{
var text = """
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19468 1 e15cbfaf 100 0 0 10 0
1: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 149685425 1 3678d6f4 100 0 0 10 0
2: 0100007F:177A 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149695309 1 94cdb95b 100 0 0 10 0
3: 0100007F:177B 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149702421 1 d7d62468 100 0 0 10 0
4: 0100007F:177C 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149704085 1 5822fee3 100 0 0 10 0
5: 00000000:157C 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 149309691 1 85d55e14 100 0 0 10 0
6: 0100007F:177D 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149710280 1 a1609a47 100 0 0 10 0
7: 0100007F:177E 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149711117 1 7e430ac6 100 0 0 10 0
8: 00000000:170C 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19537 1 3b81419b 100 0 0 10 0
9: 0E00000A:0016 B90CE28B:2E99 01 00000000:00000000 02:00085E2F 00000000 0 0 149701382 2 cfff818b 25 4 17 16 -1
10: 0E00000A:0016 B90CE28B:333E 01 00000030:00000000 01:00000018 00000000 0 0 149711082 4 df92dc4e 25 5 31 10 -1
11: 0E00000A:0016 B90CE28B:3141 01 00000000:00000000 02:0005E6D4 00000000 0 0 149696632 2 1ea81f14 23 4 1 17 -1
12: 0E00000A:0016 B90CE28B:3332 01 00000000:00000000 02:000AE5FB 00000000 0 0 149710902 2 45f78178 24 4 0 10 -1
13: 0100007F:99BC 0100007F:81B1 01 00000000:00000000 00:00000000 00000000 0 0 22402 1 a005322b 21 0 0 10 -1
14: 0E00000A:0016 B90CE28B:2EA3 01 00000000:00000000 02:000867D0 00000000 0 0 149705336 2 cf078afd 26 4 25 10 -1
15: 0100007F:81B1 0100007F:99BC 01 00000000:00000000 00:00000000 00000000 1000 0 20368 1 9e78ef41 21 4 30 10 -1
16: 0E00000A:0016 B90CE28B:333F 01 00000000:00000000 02:000AEE21 00000000 0 0 149711086 2 98aefdb4 24 4 0 10 -1
17: 0E00000A:0016 B90CE28B:3117 01 00000000:00000000 02:0005D099 00000000 0 0 149696608 2 a926c1bc 24 4 17 17 -1
18: 0E00000A:0016 B90CE28B:2E9A 01 00000000:00000000 02:00085E71 00000000 0 0 149699533 2 7956d5dc 24 5 1 16 -1
19: 0E00000A:0016 B90CE28B:332D 01 00000000:00000000 02:000AE5C2 00000000 0 0 149710896 2 dfc11f57 24 4 9 20 -1
20: 0E00000A:0016 B90CE28B:2EA4 01 00000000:00000000 02:00086822 00000000 0 0 149705343 2 07cfcce4 24 4 0 10 -1
sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000000000000000000000000000:0016 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19470 1 e47aed0c 100 0 0 10 0
1: 00000000000000000000000001000000:0277 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 149685424 1 a6e204a1 100 0 0 10 0
2: 00000000000000000000000001000000:177A 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149695308 1 97ee3eac 100 0 0 10 0
3: 00000000000000000000000001000000:177B 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149702420 1 a2dc1c92 100 0 0 10 0
4: 00000000000000000000000001000000:177C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149704084 1 bd622a42 100 0 0 10 0
5: 00000000000000000000000000000000:157C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 149309693 1 de06ed2a 100 0 0 10 0
6: 00000000000000000000000001000000:177D 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149710279 1 3157605d 100 0 0 10 0
7: 00000000000000000000000001000000:177E 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 149711116 1 2d47393d 100 0 0 10 0
8: 00000000000000000000000000000000:170C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19536 1 906ea452 100 0 0 10 0
9: 0000000000000000FFFF00000E00000A:C8FA 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000 0 0 149709547 1 d441315a 21 5 22 10 -1
10: 0000000000000000FFFF00000E00000A:C304 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000 0 0 149309791 1 62db7f0d 23 4 28 10 -1
11: 0000000000000000FFFF00000E00000A:C8F8 0000000000000000FFFF00007E3B642F:19C8 06 00000000:00000000 03:000003B2 00000000 0 0 0 3 de7eabf3
12: 0000000000000000FFFF00000E00000A:C8F6 0000000000000000FFFF00007E3B642F:19C8 06 00000000:00000000 03:000003B2 00000000 0 0 0 3 d702db02
13: 0000000000000000FFFF00000E00000A:C8FC 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000 0 0 149710184 1 0ad1e8a5 21 0 0 10 -1
14: 0000000000000000FFFF00000E00000A:C302 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000 0 0 149309243 1 c4927ab7 24 4 28 10 -1
15: 0000000000000000FFFF00000E00000A:C8F4 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000 0 0 149710854 1 d7d9b954 21 4 30 10 -1
""";
var tcps = TcpConnectionInformation2.ParseTcps(text);
Assert.NotNull(tcps);
Assert.Equal(37, tcps.Count);
//Assert.Contains(tcps, e => e.ProcessId > 0);
foreach (var item in tcps)
{
XTrace.WriteLine("{0}\t{1}\t{2}\t{3}", item.LocalEndPoint, item.RemoteEndPoint, item.State, item.ProcessId);
}
}
}
|