The Host object SHALL be used to describe a specific profile of a computer. There MAY be multiple Host objects to a single device, or multiple devices to a single Host as is seen fit by the user. If attribute values are not known, they MUST NOT be included unless specified otherwise in the description below.
The Host object has the following attributes defined:
type* - MUST be the type of object. In this case,Hostfqdn** - MUST be the FQDN (Fully Qualified Domain Name) that resolves to thisHostip** - MUST be the IPv4 or IPv6 address to route to thisHostdomain- MUST be the second-level domain for thisHostcompany- MUST be the company which owns thisHostdns- MUST be theDNSobject(s) that describe(s) thisHostports- MUST be a map (key-value pair) with two keys:tcpandudp. These two keys MUST have values which are also maps (key-value pairs) which correlate a single number between 0-65535 (representing a port) to aServiceobject (NOTE: Since JSON doesn't allow numbers to be keys, a string representation of the number must be used). If a port is closed, then it SHOULD NOT have an entry in the key-value pair under its respectivetcporudpdesignation. However, in the circumstance that data needs to be stored on a port that was open and is now closed, theServiceobject'sactiveattribute should be used to delimit that the port is closed. If a port is open, but noServiceobject has been constructed, it should be left with a blank object{}. Otherwise, the port's value pair MUST point to its respectiveServiceobject.
* Required attributes
** At least one of these attributes is required
Example:
[
{"type":"Host","fqdn":"example.acme.com","ip":"192.168.0.1","domain":"acme.com","company":"Acme","dns":{...},"ports":{"tcp":{"80":{},"443":{"type":"Service","protocol":"https"}},"udp":{...}}}
]
Pretty Printed:
[
{
"type":"Host",
"fqdn":"example.acme.com",
"ip":"192.168.0.1",
"domain":"acme.com",
"company":"Acme",
"dns":{...},
"ports":{
"tcp":{
"80":{},
"443":{"type":"Service", "protocol":"https"}
},
"udp":{...}
}
}
]