Atc.Network 1.0.209

There is a newer version of this package available.
See the version list below for details.
dotnet add package Atc.Network --version 1.0.209                
NuGet\Install-Package Atc.Network -Version 1.0.209                
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.209" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Atc.Network --version 1.0.209                
#r "nuget: Atc.Network, 1.0.209"                
#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.209

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

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 net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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 590 4/12/2024
1.0.213 492 2/15/2024
1.0.209 298 2/14/2024
1.0.207 239 2/14/2024
1.0.199 415 1/26/2024
1.0.193 417 12/4/2023
1.0.187 339 11/23/2023
1.0.183 743 10/3/2023
1.0.176 590 8/25/2023
1.0.174 329 8/25/2023
1.0.169 616 7/5/2023
1.0.163 460 6/12/2023
1.0.156 397 5/26/2023
1.0.152 462 4/17/2023
1.0.144 466 4/4/2023
1.0.142 517 3/13/2023
1.0.129 472 3/8/2023
1.0.121 2,276 9/14/2022
1.0.118 642 9/5/2022
1.0.114 634 9/1/2022
1.0.92 742 8/17/2022
1.0.90 603 8/17/2022
1.0.89 619 8/16/2022
1.0.87 615 8/16/2022
1.0.78 598 8/15/2022
1.0.41 657 8/8/2022
1.0.37 621 8/8/2022
1.0.33 631 8/6/2022
1.0.29 631 8/5/2022
1.0.22 629 8/3/2022
1.0.19 594 8/3/2022
1.0.17 611 8/3/2022
1.0.7 621 8/2/2022