mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
73 lines
2.3 KiB
C#
73 lines
2.3 KiB
C#
|
|
using System;
|
||
|
|
using System.Text;
|
||
|
|
/*
|
||
|
|
* http://tools.ietf.org/rfc/rfc1348.txt
|
||
|
|
* http://tools.ietf.org/html/rfc1706
|
||
|
|
*
|
||
|
|
* |--------------|
|
||
|
|
| <-- IDP --> |
|
||
|
|
|--------------|-------------------------------------|
|
||
|
|
| AFI | IDI | <-- DSP --> |
|
||
|
|
|-----|--------|-------------------------------------|
|
||
|
|
| 47 | 0005 | DFI | AA |Rsvd | RD |Area | ID |Sel |
|
||
|
|
|-----|--------|-----|----|-----|----|-----|----|----|
|
||
|
|
octets | 1 | 2 | 1 | 3 | 2 | 2 | 2 | 6 | 1 |
|
||
|
|
|-----|--------|-----|----|-----|----|-----|----|----|
|
||
|
|
|
||
|
|
IDP Initial Domain Part
|
||
|
|
AFI Authority and Format Identifier
|
||
|
|
IDI Initial Domain Identifier
|
||
|
|
DSP Domain Specific Part
|
||
|
|
DFI DSP Format Identifier
|
||
|
|
AA Administrative Authority
|
||
|
|
Rsvd Reserved
|
||
|
|
RD Routing Domain Identifier
|
||
|
|
Area Area Identifier
|
||
|
|
ID System Identifier
|
||
|
|
SEL NSAP Selector
|
||
|
|
|
||
|
|
Figure 1: GOSIP Version 2 NSAP structure.
|
||
|
|
|
||
|
|
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace Heijden.DNS
|
||
|
|
{
|
||
|
|
public class RecordNSAP : Record
|
||
|
|
{
|
||
|
|
public ushort LENGTH;
|
||
|
|
public byte[] NSAPADDRESS;
|
||
|
|
|
||
|
|
public RecordNSAP(RecordReader rr)
|
||
|
|
{
|
||
|
|
LENGTH = rr.ReadUInt16();
|
||
|
|
NSAPADDRESS = rr.ReadBytes(LENGTH);
|
||
|
|
}
|
||
|
|
|
||
|
|
public override string ToString()
|
||
|
|
{
|
||
|
|
StringBuilder sb = new StringBuilder();
|
||
|
|
sb.AppendFormat("{0} ", LENGTH);
|
||
|
|
for (int intI = 0; intI < NSAPADDRESS.Length; intI++)
|
||
|
|
sb.AppendFormat("{0:X00}", NSAPADDRESS[intI]);
|
||
|
|
return sb.ToString();
|
||
|
|
}
|
||
|
|
|
||
|
|
public string ToGOSIPV2()
|
||
|
|
{
|
||
|
|
return string.Format("{0:X}.{1:X}.{2:X}.{3:X}.{4:X}.{5:X}.{6:X}{7:X}.{8:X}",
|
||
|
|
NSAPADDRESS[0], // AFI
|
||
|
|
NSAPADDRESS[1] << 8 | NSAPADDRESS[2], // IDI
|
||
|
|
NSAPADDRESS[3], // DFI
|
||
|
|
NSAPADDRESS[4] << 16 | NSAPADDRESS[5] << 8 | NSAPADDRESS[6], // AA
|
||
|
|
NSAPADDRESS[7] << 8 | NSAPADDRESS[8], // Rsvd
|
||
|
|
NSAPADDRESS[9] << 8 | NSAPADDRESS[10],// RD
|
||
|
|
NSAPADDRESS[11] << 8 | NSAPADDRESS[12],// Area
|
||
|
|
NSAPADDRESS[13] << 16 | NSAPADDRESS[14] << 8 | NSAPADDRESS[15], // ID-High
|
||
|
|
NSAPADDRESS[16] << 16 | NSAPADDRESS[17] << 8 | NSAPADDRESS[18], // ID-Low
|
||
|
|
NSAPADDRESS[19]);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|