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 605 4/12/2024
1.0.213 497 2/15/2024
1.0.209 302 2/14/2024
1.0.207 243 2/14/2024
1.0.199 419 1/26/2024
1.0.193 421 12/4/2023
1.0.187 343 11/23/2023
1.0.183 747 10/3/2023
1.0.176 594 8/25/2023
1.0.174 333 8/25/2023
1.0.169 620 7/5/2023
1.0.163 464 6/12/2023
1.0.156 401 5/26/2023
1.0.152 466 4/17/2023
1.0.144 472 4/4/2023
1.0.142 521 3/13/2023
1.0.129 476 3/8/2023
1.0.121 2,280 9/14/2022
1.0.118 646 9/5/2022
1.0.114 638 9/1/2022
1.0.92 746 8/17/2022
1.0.90 607 8/17/2022
1.0.89 623 8/16/2022
1.0.87 619 8/16/2022
1.0.78 602 8/15/2022
1.0.41 661 8/8/2022
1.0.37 625 8/8/2022
1.0.33 635 8/6/2022
1.0.29 635 8/5/2022
1.0.22 633 8/3/2022
1.0.19 598 8/3/2022
1.0.17 615 8/3/2022
1.0.7 625 8/2/2022