Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class SubnetMask
- {
- public static readonly IPAddress ClassA = IPAddress.Parse("255.0.0.0");
- public static readonly IPAddress ClassB = IPAddress.Parse("255.255.0.0");
- public static readonly IPAddress ClassC = IPAddress.Parse("255.255.255.0");
- public static IPAddress CreateByHostBitLength(int hostpartLength)
- {
- int hostPartLength = hostpartLength;
- int netPartLength = 32 - hostPartLength;
- if (netPartLength < 2)
- throw new ArgumentException("Number of hosts is to large for IPv4");
- Byte[] binaryMask = new byte[4];
- for (int i = 0; i < 4; i++)
- {
- if (i * 8 + 8 <= netPartLength)
- binaryMask[i] = (byte)255;
- else if (i * 8 > netPartLength)
- binaryMask[i] = (byte)0;
- else
- {
- int oneLength = netPartLength - i * 8;
- string binaryDigit =
- String.Empty.PadLeft(oneLength, '1').PadRight(8, '0');
- binaryMask[i] = Convert.ToByte(binaryDigit, 2);
- }
- }
- return new IPAddress(binaryMask);
- }
- public static IPAddress CreateByNetBitLength(int netpartLength)
- {
- int hostPartLength = 32 - netpartLength;
- return CreateByHostBitLength(hostPartLength);
- }
- public static IPAddress CreateByHostNumber(int numberOfHosts)
- {
- int maxNumber = numberOfHosts + 1;
- string b = Convert.ToString(maxNumber, 2);
- return CreateByHostBitLength(b.Length);
- }
- }
- public static class IPAddressExtensions
- {
- public static IPAddress GetBroadcastAddress(this IPAddress address, IPAddress subnetMask)
- {
- byte[] ipAdressBytes = address.GetAddressBytes();
- byte[] subnetMaskBytes = subnetMask.GetAddressBytes();
- if (ipAdressBytes.Length != subnetMaskBytes.Length)
- throw new ArgumentException("Lengths of IP address and subnet mask do not match.");
- byte[] broadcastAddress = new byte[ipAdressBytes.Length];
- for (int i = 0; i < broadcastAddress.Length; i++)
- {
- broadcastAddress[i] = (byte)(ipAdressBytes[i] | (subnetMaskBytes[i] ^ 255));
- }
- return new IPAddress(broadcastAddress);
- }
- public static IPAddress GetNetworkAddress(this IPAddress address, IPAddress subnetMask)
- {
- byte[] ipAdressBytes = address.GetAddressBytes();
- byte[] subnetMaskBytes = subnetMask.GetAddressBytes();
- if (ipAdressBytes.Length != subnetMaskBytes.Length)
- throw new ArgumentException("Lengths of IP address and subnet mask do not match.");
- byte[] broadcastAddress = new byte[ipAdressBytes.Length];
- for (int i = 0; i < broadcastAddress.Length; i++)
- {
- broadcastAddress[i] = (byte)(ipAdressBytes[i] & (subnetMaskBytes[i]));
- }
- return new IPAddress(broadcastAddress);
- }
- public static bool IsInSameSubnet(this IPAddress address2, IPAddress address, IPAddress subnetMask)
- {
- IPAddress network1 = address.GetNetworkAddress(subnetMask);
- IPAddress network2 = address2.GetNetworkAddress(subnetMask);
- return network1.Equals(network2);
- }
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- string hostName = Dns.GetHostName();
- string myIP = Dns.GetHostByName(hostName).AddressList[0].ToString();
- lblip.Text = myIP;
- lblmac.Text = DeviceInfo.GetMacAddress()[0].ToString();
- **lblmask.Text = SubnetMask.CreateByHostBitLength();**esta es la que no sale
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement