1
0
mirror of https://github.com/nmap/nmap.git synced 2026-02-03 20:16:33 +00:00

Merge from /nmap-exp/david/nmap-ipv6.

This is raw IPv6 packet support for most port and ping scans, Neighbor
Discovery, and traceroute.
This commit is contained in:
david
2011-06-08 01:24:48 +00:00
parent b08c07339a
commit 4aa4a154f9
39 changed files with 3448 additions and 1752 deletions

View File

@@ -195,6 +195,11 @@ void Target::GenerateIPString() {
}
}
/* Returns the address family of the destination address. */
int Target::af() const {
return targetsock.ss_family;
}
/* Fills a sockaddr_storage with the AF_INET or AF_INET6 address
information of the target. This is a preferred way to get the
address since it is portable for IPv6 hosts. Returns 0 for
@@ -211,6 +216,10 @@ int Target::TargetSockAddr(struct sockaddr_storage *ss, size_t *ss_len) const {
return 0;
}
const struct sockaddr_storage *Target::TargetSockAddr() const {
return &targetsock;
}
/* Note that it is OK to pass in a sockaddr_in or sockaddr_in6 casted
to sockaddr_storage */
void Target::setTargetSockAddr(const struct sockaddr_storage *ss, size_t ss_len) {
@@ -247,6 +256,14 @@ const struct in_addr *Target::v4hostip() const {
return NULL;
}
const struct in6_addr *Target::v6hostip() const {
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) &targetsock;
if (sin6->sin6_family == AF_INET6) {
return &(sin6->sin6_addr);
}
return NULL;
}
/* The source address used to reach the target */
int Target::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) const {
if (sourcesocklen <= 0)
@@ -259,6 +276,10 @@ int Target::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) const {
return 0;
}
const struct sockaddr_storage *Target::SourceSockAddr() const {
return &sourcesock;
}
/* Note that it is OK to pass in a sockaddr_in or sockaddr_in6 casted
to sockaddr_storage */
void Target::setSourceSockAddr(const struct sockaddr_storage *ss, size_t ss_len) {