Atc.Network 1.0.224

dotnet add package Atc.Network --version 1.0.224
NuGet\Install-Package Atc.Network -Version 1.0.224
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Atc.Network" Version="1.0.224" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Atc.Network --version 1.0.224
#r "nuget: Atc.Network, 1.0.224"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Atc.Network as a Cake Addin
#addin nuget:?package=Atc.Network&version=1.0.224

// Install Atc.Network as a Cake Tool
#tool nuget:?package=Atc.Network&version=1.0.224

NuGet Version

Atc.Network

Atc.Network is a C# library providing robust and flexible tools for network communication and scanning.

  • TcpClient/TcpServer: Establish and manage TCP network connections.

  • UdpClient/UdpServer: Establish and manage UDP network connections.

    • IPScanner: A flexible tool to scan a range of IP addresses or a single IP address. It comes with various configuration options such as:
    • ICMP Pinging
    • Host Name Resolution
    • MAC Address Resolution
    • Vendor Identification from MAC Address
    • Port Number Testing (None, Well-Known, Well-Known and Common, All)

Using the TcpClient

A sample reference implementation can be found here

Using the UdpClient and UdpServer

A sample reference implementation can be found here

Using the IPScanner

The IPScanner can scan a range of IPAddresses or just a single IPAddress as specified in the IPScannerConfig.

  • If IcmpPing is enabled the result for given IPAddress will contain a PingResult with network quality information.
  • If ResolveHostName is enabled the result for given IPAddress will contain the hostname if possible to resolve.
  • If ResolveMacAddress is enabled the result for given IPAddress will contain the mac-address if possible to resolve.
  • If ResolveVendorFromMacAddress is enabled the result for given IPAddress will contain the vendor name from the mac-address if possible to resolve.
  • TreatOpenPortsAsWebServices defines what kind of port numbers should be tested, the options are: None, WellKnown, WellKnownAndCommon, All

Example on ScanRange based on WellKnown port numbers

    var ipScannerConfig = new IPScannerConfig
    {
        IcmpPing = true,
        ResolveHostName = true,
        ResolveMacAddress = true,
        ResolveVendorFromMacAddress = true,
        TreatOpenPortsAsWebServices = IPServicePortExaminationLevel.WellKnown,
    };

    var ipScanner = new IPScanner(ipScannerConfig);
    ipScanner.ProgressReporting += IpScannerOnProgressReporting;

    var ipScanResults = await ipScanner.ScanRange(
        IPAddress.Parse("192.168.0.1"),
        IPAddress.Parse("192.168.0.254"),
        CancellationToken.None);

Example on ScanRange based on specified port numbers

    var ipScannerConfig = new IPScannerConfig
    {
        IcmpPing = true,
        ResolveHostName = true,
        ResolveMacAddress = true,
        ResolveVendorFromMacAddress = true,
        TreatOpenPortsAsWebServices = IPServicePortExaminationLevel.None,
    };

    ipScannerConfig.PortNumbers = new List<ushort> { 21, 80, 8080 };

    var ipScanner = new IPScanner(ipScannerConfig);
    ipScanner.ProgressReporting += IpScannerOnProgressReporting;

    var ipScanResults = await ipScanner.ScanRange(
        IPAddress.Parse("192.168.0.1"),
        IPAddress.Parse("192.168.0.254"),
        CancellationToken.None);

Using the IPPortScan

Example on CanConnectWithTcp

    var ipPortScan = new IPPortScan(IPAddress.Parse("192.168.0.27"));
    var ipPortScanResult = await ipPortScan.CanConnectWithTcp(
        80,
        CancellationToken.None);

Example on CanConnectWithHttp

    var ipPortScan = new IPPortScan(IPAddress.Parse("192.168.0.27"));
    var ipPortScanResult = await ipPortScan.CanConnectWithHttp(
        80,
        CancellationToken.None);

How to contribute

Contribution Guidelines

Coding Guidelines

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.224 117 4/12/2024
1.0.213 423 2/15/2024
1.0.209 223 2/14/2024
1.0.207 211 2/14/2024
1.0.199 378 1/26/2024
1.0.193 390 12/4/2023
1.0.187 300 11/23/2023
1.0.183 705 10/3/2023
1.0.176 563 8/25/2023
1.0.174 301 8/25/2023
1.0.169 584 7/5/2023
1.0.163 433 6/12/2023
1.0.156 366 5/26/2023
1.0.152 430 4/17/2023
1.0.144 436 4/4/2023
1.0.142 481 3/13/2023
1.0.129 444 3/8/2023
1.0.121 2,244 9/14/2022
1.0.118 612 9/5/2022
1.0.114 609 9/1/2022
1.0.92 702 8/17/2022
1.0.90 572 8/17/2022
1.0.89 589 8/16/2022
1.0.87 586 8/16/2022
1.0.78 570 8/15/2022
1.0.41 629 8/8/2022
1.0.37 578 8/8/2022
1.0.33 606 8/6/2022
1.0.29 603 8/5/2022
1.0.22 603 8/3/2022
1.0.19 566 8/3/2022
1.0.17 583 8/3/2022
1.0.7 595 8/2/2022