|
Wireshark 4.7.0
The Wireshark network protocol analyzer
|
#include <epan/address.h>#include <epan/tvbuff.h>#include <wsutil/inet_cidr.h>#include <epan/to_str.h>#include <wiretap/wtap.h>#include "ws_symbol_export.h"Go to the source code of this file.
Classes | |
| struct | _e_addr_resolve |
| Flags to control name resolution. More... | |
| struct | _serv_port_key |
| struct | _resolved_name |
Macros | |
| #define | MAXNAMELEN 64 /* max name length (most names: DNS labels, services, eth) */ |
| #define | MAXVLANNAMELEN 128 /* max vlan name length */ |
| #define | MAXDNSNAMELEN 256 /* max total length of a domain name in the DNS */ |
| #define | BASE_ENTERPRISES BASE_CUSTOM |
| #define | STRINGS_ENTERPRISES CF_FUNC(enterprises_base_custom) |
| #define | ADDR_RESOLV_MACADDR(at) (((at)->type == AT_ETHER) || ((at)->type == AT_EUI64)) |
| #define | ADDR_RESOLV_NETADDR(at) (((at)->type == AT_IPv4) || ((at)->type == AT_IPv6) || ((at)->type == AT_IPX)) |
| #define | TRIED_RESOLVE_ADDRESS (1U<<0) /* name resolution is being/has been tried */ |
| #define | NAME_RESOLVED (1U<<1) /* the name field contains a host name, not a printable address */ |
| #define | RESOLVED_ADDRESS_USED (1U<<2) /* a get_hostname* call returned the host name */ |
| #define | STATIC_HOSTNAME (1U<<3) /* do not update entries from hosts file with DNS responses */ |
| #define | NAME_RESOLVED_PREFIX (1U<<4) /* name was generated from a prefix (e.g., OUI) instead of the entire address */ |
| #define | TRIED_OR_RESOLVED_MASK (TRIED_RESOLVE_ADDRESS | NAME_RESOLVED) |
| #define | USED_AND_RESOLVED_MASK (NAME_RESOLVED | RESOLVED_ADDRESS_USED) |
Typedefs | |
| typedef struct _e_addr_resolve | e_addr_resolve |
| Flags to control name resolution. | |
| typedef struct hashether | hashether_t |
| typedef struct hasheui64 | hasheui64_t |
| typedef struct hashwka | hashwka_t |
| typedef struct hashmanuf | hashmanuf_t |
| typedef struct _serv_port_key | serv_port_key_t |
| typedef struct _resolved_name | resolved_name_t |
Functions | |
| WS_DLL_PUBLIC hashipv4_t * | new_ipv4 (const unsigned addr) |
| Construct a new IPv4 object from a 32-bit address. | |
| WS_DLL_PUBLIC bool | fill_dummy_ip4 (const unsigned addr, hashipv4_t *volatile tp) |
| Populate a dummy IPv4 object with the specified address. | |
| WS_DLL_PUBLIC char * | udp_port_to_display (wmem_allocator_t *allocator, unsigned port) |
| Resolve a UDP port number to its display name. | |
| WS_DLL_PUBLIC char * | tcp_port_to_display (wmem_allocator_t *allocator, unsigned port) |
| Resolve a TCP port number to its display name. | |
| WS_DLL_PUBLIC char * | dccp_port_to_display (wmem_allocator_t *allocator, unsigned port) |
| Resolve a DCCP port number to its display name. | |
| WS_DLL_PUBLIC char * | sctp_port_to_display (wmem_allocator_t *allocator, unsigned port) |
| Resolve an SCTP port number to its display name. | |
| WS_DLL_PUBLIC const char * | serv_name_lookup (port_type proto, unsigned port) |
| Resolve a port number to its well-known service name. | |
| WS_DLL_PUBLIC const char * | enterprises_lookup (uint32_t value, const char *unknown_str) |
| Resolve a private enterprise code to its registered name. | |
| WS_DLL_PUBLIC const char * | try_enterprises_lookup (uint32_t value) |
| Attempt to resolve a private enterprise code to its registered name. | |
| WS_DLL_PUBLIC void | enterprises_base_custom (char *buf, uint32_t value) |
| Format a private enterprise code as "name (decimal)" into a buffer. | |
| WS_DLL_PUBLIC const char * | try_serv_name_lookup (port_type proto, unsigned port) |
| Attempt to resolve a port number to its well-known service name. | |
| WS_DLL_PUBLIC char * | port_with_resolution_to_str (wmem_allocator_t *scope, port_type proto, unsigned port) |
| Format a port number with its resolved service name. | |
| WS_DLL_PUBLIC int | port_with_resolution_to_str_buf (char *buf, unsigned long buf_size, port_type proto, unsigned port) |
| Format a port number with its resolved service name into a buffer. | |
| void | addr_resolve_pref_init (struct pref_module *nameres) |
| void | addr_resolve_pref_apply (void) |
| WS_DLL_PUBLIC void | disable_name_resolution (void) |
| Disable all forms of name resolution. | |
| WS_DLL_PUBLIC bool | host_name_lookup_process (void) |
| Process outstanding asynchronous host name lookups via c-ares. | |
| WS_DLL_PUBLIC const char * | get_hostname (const unsigned addr) |
| Resolve an IPv4 address to its host name. | |
| WS_DLL_PUBLIC char * | get_hostname_wmem (wmem_allocator_t *allocator, const unsigned addr) |
| Resolve an IPv4 address to its host name using scoped memory allocation. | |
| WS_DLL_PUBLIC const char * | get_hostname6 (const ws_in6_addr *ad) |
| Resolves an IPv6 address to a hostname or numeric string. | |
| WS_DLL_PUBLIC char * | get_hostname6_wmem (wmem_allocator_t *allocator, const ws_in6_addr *ad) |
| Resolves an IPv6 address to a hostname using a memory allocator. | |
| WS_DLL_PUBLIC const char * | get_ether_name (const uint8_t *addr) |
| Resolves an Ethernet address to a logical name or vendor string. | |
| WS_DLL_PUBLIC const char * | get_hostname_ss7pc (const uint8_t ni, const uint32_t pc) |
| Resolves an SS7 Point Code to a hostname. | |
| WS_DLL_PUBLIC void | fill_unresolved_ss7pc (const char *pc_addr, const uint8_t ni, const uint32_t pc) |
| Initializes unresolved SS7 Point Code entries in the hashtable. | |
| WS_DLL_PUBLIC const char * | tvb_get_ether_name (tvbuff_t *tvb, int offset) |
| Resolves an Ethernet address from a tvbuff. | |
| WS_DLL_PUBLIC const char * | get_ether_name_if_known (const uint8_t *addr) |
| Resolves an Ethernet address only if an exact match is known. | |
| const char * | get_manuf_name (const uint8_t *addr, size_t size) |
| Resolves a 3-octet OUI to a short vendor name. | |
| WS_DLL_PUBLIC const char * | get_manuf_name_if_known (const uint8_t *addr, size_t size) |
| Resolves an OUI to a full vendor name if known. | |
| WS_DLL_PUBLIC const char * | uint_get_manuf_name_if_known (const uint32_t oid) |
| Resolves a 24-bit OUI integer to a vendor name. | |
| WS_DLL_PUBLIC const char * | tvb_get_manuf_name (tvbuff_t *tvb, int offset) |
| Resolves a 3-octet OUI from a tvbuff to a short vendor name. | |
| WS_DLL_PUBLIC const char * | tvb_get_manuf_name_if_known (tvbuff_t *tvb, int offset) |
| Resolves a 3-octet OUI from a tvbuff to a full vendor name. | |
| const char * | get_eui64_name (const uint8_t *addr) |
| Resolves an EUI-64 address to a logical name or vendor string. | |
| WS_DLL_PUBLIC char * | eui64_to_display (wmem_allocator_t *allocator, const uint64_t addr) |
| Converts a uint64_t EUI-64 address to a display string. | |
| WS_DLL_PUBLIC char * | get_ipxnet_name (wmem_allocator_t *allocator, const uint32_t addr) |
| Resolves an IPX network number to a name. | |
| WS_DLL_PUBLIC char * | get_vlan_name (wmem_allocator_t *allocator, const uint16_t id) |
| Resolves a VLAN ID to a name. | |
| WS_DLL_PUBLIC unsigned | get_hash_ether_status (hashether_t *ether) |
| Gets the status code for a resolved Ethernet entry. | |
| WS_DLL_PUBLIC bool | get_hash_ether_used (hashether_t *ether) |
| Checks if an Ethernet hash entry was used. | |
| WS_DLL_PUBLIC char * | get_hash_ether_hexaddr (hashether_t *ether) |
| Gets the hex string representation of an Ethernet address. | |
| WS_DLL_PUBLIC char * | get_hash_ether_resolved_name (hashether_t *ether) |
| Gets the resolved name for an Ethernet hash entry. | |
| WS_DLL_PUBLIC bool | get_hash_manuf_used (hashmanuf_t *manuf) |
| Checks if a manufacturer hash entry was used. | |
| WS_DLL_PUBLIC char * | get_hash_manuf_resolved_name (hashmanuf_t *manuf) |
| Gets the resolved name for a manufacturer hash entry. | |
| WS_DLL_PUBLIC bool | get_hash_wka_used (hashwka_t *wka) |
| Checks if a WKA hash entry was used. | |
| WS_DLL_PUBLIC char * | get_hash_wka_resolved_name (hashwka_t *wka) |
| Gets the resolved name for a WKA hash entry. | |
| WS_DLL_PUBLIC void | add_ipv4_name (const unsigned addr, const char *name, const bool static_entry) |
| Adds a static or dynamic IPv4 name mapping. | |
| WS_DLL_PUBLIC void | add_ipv6_name (const ws_in6_addr *addr, const char *name, const bool static_entry) |
| Adds a Hostname/IPv4 in the hash table. | |
| WS_DLL_PUBLIC bool | add_hosts_file (const char *hosts_file) |
| Adds an additional "hosts" file for IPv4 and IPv6 name resolution. | |
| WS_DLL_PUBLIC bool | add_ip_name_from_string (const char *addr, const char *name) |
| Adds a hostname mapping for a given IP address string. | |
| WS_DLL_PUBLIC resolved_name_t * | get_edited_resolved_name (const char *addr) |
| Retrieves the user-defined name for a given address. | |
| WS_DLL_PUBLIC addrinfo_lists_t * | get_addrinfo_list (void) |
| Retrieves known host-to-address mappings. | |
| WS_DLL_PUBLIC void | add_ether_byip (const unsigned ip, const uint8_t *eth) |
| Associates an Ethernet (MAC) address / name to an IPv4 address. | |
| WS_DLL_PUBLIC bool | get_host_ipaddr (const char *host, uint32_t *addrp) |
| Resolves a hostname or IPv4 string to a numeric IPv4 address. | |
| WS_DLL_PUBLIC bool | get_host_ipaddr6 (const char *host, ws_in6_addr *addrp) |
| Resolves a hostname or IPv6 string to a numeric IPv6 address. | |
| WS_DLL_PUBLIC wmem_map_t * | get_manuf_hashtable (void) |
| Retrieves the manufacturer hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_wka_hashtable (void) |
| Retrieves the well-known address (WKA) hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_eth_hashtable (void) |
| Retrieves the Ethernet address hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_serv_port_hashtable (void) |
| Retrieves the service port hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_ipxnet_hash_table (void) |
| Retrieves the IPX network hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_vlan_hash_table (void) |
| Retrieves the VLAN ID hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_ipv4_hash_table (void) |
| Retrieves the IPv4 address hashtable. | |
| WS_DLL_PUBLIC wmem_map_t * | get_ipv6_hash_table (void) |
| Retrieves the IPv6 address hashtable. | |
| WS_DLL_PUBLIC void | set_resolution_synchrony (bool synchronous) |
| Sets the resolution mode to synchronous or asynchronous. | |
| WS_DLL_LOCAL void | name_resolver_init (void) |
| Initializes the name resolution subsystem. | |
| WS_DLL_LOCAL void | host_name_lookup_reset (const char *app_env_var_prefix) |
| Reinitialize hostname resolution subsystem. | |
| WS_DLL_LOCAL void | addr_resolv_init (const char *app_env_var_prefix) |
| Initializes the address resolution subsystem. | |
| WS_DLL_LOCAL void | addr_resolv_cleanup (void) |
| Cleans up the address resolution subsystem. | |
| WS_DLL_PUBLIC bool | str_to_ip (const char *str, void *dst) |
| Parses a string as an IPv4 address. | |
| WS_DLL_PUBLIC bool | str_to_ip6 (const char *str, void *dst) |
| Parses a string as an IPv6 address. | |
| WS_DLL_LOCAL bool | str_to_eth (const char *str, uint8_t(*eth_bytes)[6]) |
| Parses a string as an Ethernet (MAC) address. | |
| WS_DLL_LOCAL unsigned | ipv6_oat_hash (const void *key) |
| Computes a hash value for an IPv6 address using OAT hashing. | |
| WS_DLL_LOCAL gboolean | ipv6_equal (const void *v1, const void *v2) |
| Compares two IPv6 addresses for equality. | |
Variables | |
| WS_DLL_PUBLIC e_addr_resolve | gbl_resolv_flags |
| char * | g_ethers_path |
| char * | g_ipxnets_path |
| char * | g_pethers_path |
| char * | g_pipxnets_path |
Definitions for network object lookup
Laurent Deniel laure.nosp@m.nt.d.nosp@m.eniel.nosp@m.@fre.nosp@m.e.fr
Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 1998 Gerald Combs
SPDX-License-Identifier: GPL-2.0-or-later
| WS_DLL_PUBLIC void add_ether_byip | ( | const unsigned | ip, |
| const uint8_t * | eth | ||
| ) |
Associates an Ethernet (MAC) address / name to an IPv4 address.
Adds a mapping between the given IPv4 address and its corresponding Ethernet address. Used for name resolution and display purposes.
| ip | IPv4 address in host byte order. |
| eth | Pointer to a 6-byte Ethernet address. |
| WS_DLL_PUBLIC bool add_hosts_file | ( | const char * | hosts_file | ) |
Adds an additional "hosts" file for IPv4 and IPv6 name resolution.
Registers a user-specified hosts file to be used for resolving IP addresses. The file can be added before host_name_lookup_init() is called and will be re-read each time that function is invoked.
| hosts_file | Absolute path to the hosts file. |
| WS_DLL_PUBLIC bool add_ip_name_from_string | ( | const char * | addr, |
| const char * | name | ||
| ) |
Adds a hostname mapping for a given IP address string.
Inserts a user-defined name for an IP address into the resolution table. The address string may represent either an IPv4 or IPv6 address.
| addr | IP address string (e.g., "192.168.0.1" or "2001:db8::1"). |
| name | Hostname to associate with the address. |
| WS_DLL_PUBLIC void add_ipv4_name | ( | const unsigned | addr, |
| const char * | name, | ||
| const bool | static_entry | ||
| ) |
Adds a static or dynamic IPv4 name mapping.
Inserts a hostname for the given IPv4 address into the resolution table.
| addr | IPv4 address in host byte order. |
| name | Hostname to associate. |
| static_entry | true if the entry is static. |
| WS_DLL_PUBLIC void add_ipv6_name | ( | const ws_in6_addr * | addr, |
| const char * | name, | ||
| const bool | static_entry | ||
| ) |
Adds a Hostname/IPv4 in the hash table.
Inserts a hostname for the given IPv6 address into the resolution table.
| addr | Pointer to the IPv6 address. |
| name | Hostname to associate. |
| static_entry | true if the entry is static. |
| WS_DLL_LOCAL void addr_resolv_cleanup | ( | void | ) |
Cleans up the address resolution subsystem.
Frees resources and resets state related to address resolution. Intended for internal use by the epan core only.
| WS_DLL_LOCAL void addr_resolv_init | ( | const char * | app_env_var_prefix | ) |
Initializes the address resolution subsystem.
Prepares internal structures for resolving network addresses. Intended for internal use by the epan core only.
| WS_DLL_PUBLIC char * dccp_port_to_display | ( | wmem_allocator_t * | allocator, |
| unsigned | port | ||
| ) |
Resolve a DCCP port number to its display name.
Returns a human-readable name for the specified DCCP port, such as "RTP" or "DCCP-Test". If no known name is associated with the port, the function returns the numeric port value as a string. The result is allocated using the provided wmem_allocator_t.
| allocator | Memory allocator used to allocate the returned string. |
| port | DCCP port number to resolve. |
| WS_DLL_PUBLIC void disable_name_resolution | ( | void | ) |
Disable all forms of name resolution.
Sets all relevant global resolution flags (gbl_resolv_flags) to false, effectively disabling hostname, service name, and other symbolic resolution features. This is typically used to improve performance or enforce numeric-only output in protocol analysis and logging.
| WS_DLL_PUBLIC void enterprises_base_custom | ( | char * | buf, |
| uint32_t | value | ||
| ) |
Format a private enterprise code as "name (decimal)" into a buffer.
Writes a string representation of the given enterprise code to buf, using the format "Name (1234)". If the code is unknown, the name portion is resolved via enterprises_lookup() and may fall back to "<Unknown>".
| buf | Output buffer to receive the formatted string. |
| value | Private enterprise code to format. |
| WS_DLL_PUBLIC const char * enterprises_lookup | ( | uint32_t | value, |
| const char * | unknown_str | ||
| ) |
Resolve a private enterprise code to its registered name.
Returns the name associated with the given private enterprise code (PEC), commonly used in SNMP, IPFIX, and other protocol metadata. If no known name exists for the specified code, the function returns unknown_str, or the string "<Unknown>" if unknown_str is NULL.
This is typically used for display, logging, or protocol dissection.
| value | Private enterprise code to resolve. |
| unknown_str | Fallback string if the code is not recognized. |
| WS_DLL_PUBLIC char * eui64_to_display | ( | wmem_allocator_t * | allocator, |
| const uint64_t | addr | ||
| ) |
Converts a uint64_t EUI-64 address to a display string.
Returns a vendor-prefixed or full hex string using the given allocator.
eui64_to_display returns "<vendor>_%02x:%02x:%02x:%02x:%02x:%02x" if the vendor code is known (or as appropriate for MA-M and MA-S), and if not, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x". Gives the same results as address_to_display, but for when the EUI-64 address is a host endian uint64_t instead of bytes / an AT_EUI64 address.
| allocator | Memory allocator scope. |
| addr | EUI-64 address as uint64_t. |
| WS_DLL_PUBLIC bool fill_dummy_ip4 | ( | const unsigned | addr, |
| hashipv4_t *volatile | tp | ||
| ) |
Populate a dummy IPv4 object with the specified address.
Initializes the given hashipv4_t pointer with the provided IPv4 address, marking it as a placeholder or synthetic entry. This is typically used for testing, fallback logic, or internal bookkeeping where a non-real IP is required.
| addr | IPv4 address in host byte order. |
| tp | Pointer to a hashipv4_t object to populate. |
true on success, false on failure. | WS_DLL_PUBLIC void fill_unresolved_ss7pc | ( | const char * | pc_addr, |
| const uint8_t | ni, | ||
| const uint32_t | pc | ||
| ) |
Initializes unresolved SS7 Point Code entries in the hashtable.
Adds a placeholder entry for an unresolved SS7 Point Code.
| pc_addr | String representation of the Point Code. |
| ni | Network Indicator. |
| pc | Point Code. |
| WS_DLL_PUBLIC addrinfo_lists_t * get_addrinfo_list | ( | void | ) |
Retrieves known host-to-address mappings.
Returns a structure containing two GLists: one with hashipv4_t entries for IPv4 mappings and one with hashipv6_t entries for IPv6 mappings.
addrinfo_lists_t structure, or NULL if no mappings are available. | WS_DLL_PUBLIC resolved_name_t * get_edited_resolved_name | ( | const char * | addr | ) |
Retrieves the user-defined name for a given address.
Returns a pointer to a resolved_name_t structure containing the custom name associated with the given address, if one exists.
| addr | IP address string. |
| WS_DLL_PUBLIC wmem_map_t * get_eth_hashtable | ( | void | ) |
Retrieves the Ethernet address hashtable.
Returns a pointer to the hashtable mapping full Ethernet (MAC) addresses to resolved names.
| WS_DLL_PUBLIC const char * get_ether_name | ( | const uint8_t * | addr | ) |
Resolves an Ethernet address to a logical name or vendor string.
Returns a logical name if found in ethers files, or a vendor-prefixed string if the vendor is known, or a full MAC address string otherwise.
For example: "<vendor>_%02x:%02x:%02x" if the vendor code is known else "%02x:%02x:%02x:%02x:%02x:%02x"
| addr | Pointer to the 6-byte Ethernet address. |
| WS_DLL_PUBLIC const char * get_ether_name_if_known | ( | const uint8_t * | addr | ) |
Resolves an Ethernet address only if an exact match is known.
Returns a logical name if the full address is known from the ethers file or ARP, otherwise returns NULL.
| addr | Pointer to the 6-byte Ethernet address. |
|
extern |
Resolves an EUI-64 address to a logical name or vendor string.
Returns a logical name, vendor-prefixed string, or full EUI-64 hex string. get_eui64_name returns the logical name if found in ethers files else "<vendor>_%02x:%02x:%02x:%02x:%02x:%02x" if the vendor code is known (or as appropriate for MA-M and MA-S), and if not, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x"
| addr | Pointer to the 8-byte EUI-64 address. |
| WS_DLL_PUBLIC char * get_hash_ether_hexaddr | ( | hashether_t * | ether | ) |
Gets the hex string representation of an Ethernet address.
| ether | Pointer to the Ethernet hash entry. |
| WS_DLL_PUBLIC char * get_hash_ether_resolved_name | ( | hashether_t * | ether | ) |
Gets the resolved name for an Ethernet hash entry.
| ether | Pointer to the Ethernet hash entry. |
| WS_DLL_PUBLIC unsigned get_hash_ether_status | ( | hashether_t * | ether | ) |
Gets the status code for a resolved Ethernet entry.
| ether | Pointer to the Ethernet hash entry. |
| WS_DLL_PUBLIC bool get_hash_ether_used | ( | hashether_t * | ether | ) |
Checks if an Ethernet hash entry was used.
| ether | Pointer to the Ethernet hash entry. |
| WS_DLL_PUBLIC char * get_hash_manuf_resolved_name | ( | hashmanuf_t * | manuf | ) |
Gets the resolved name for a manufacturer hash entry.
| manuf | Pointer to the manufacturer hash entry. |
| WS_DLL_PUBLIC bool get_hash_manuf_used | ( | hashmanuf_t * | manuf | ) |
Checks if a manufacturer hash entry was used.
| manuf | Pointer to the manufacturer hash entry. |
| WS_DLL_PUBLIC char * get_hash_wka_resolved_name | ( | hashwka_t * | wka | ) |
Gets the resolved name for a WKA hash entry.
| wka | Pointer to the WKA hash entry. |
| WS_DLL_PUBLIC bool get_hash_wka_used | ( | hashwka_t * | wka | ) |
Checks if a WKA hash entry was used.
| wka | Pointer to the WKA hash entry. |
| WS_DLL_PUBLIC bool get_host_ipaddr | ( | const char * | host, |
| uint32_t * | addrp | ||
| ) |
Resolves a hostname or IPv4 string to a numeric IPv4 address.
Translates a string representing a hostname or dotted-decimal IPv4 address into a numeric IPv4 address value in network byte order. If compiled with c-ares, the request will wait a maximum of 250ms for the request to finish. Otherwise the wait time will be system-dependent, usually much longer. Immediately returns false for hostnames if network name resolution is disabled.
| [in] | host | The hostname or IPv4 string to resolve. |
| [out] | addrp | Pointer to receive the resolved IPv4 address in network byte order. |
| WS_DLL_PUBLIC bool get_host_ipaddr6 | ( | const char * | host, |
| ws_in6_addr * | addrp | ||
| ) |
Resolves a hostname or IPv6 string to a numeric IPv6 address.
Translates a string representing a hostname or colon-hex IPv6 address into a numeric IPv6 address value in network byte order. If compiled with c-ares, the request will wait a maximum of 250ms for the request to finish. Otherwise the wait time will be system-dependent, usually much longer. Immediately returns false for hostnames if network name resolution is disabled.
| [in] | host | The hostname or IPv6 string to resolve. |
| [out] | addrp | Pointer to receive the resolved IPv6 address in network byte order. |
| WS_DLL_PUBLIC const char * get_hostname | ( | const unsigned | addr | ) |
Resolve an IPv4 address to its host name.
Returns a string containing the host name associated with the given IPv4 address, or a numeric string in the format "%d.%d.%d.%d" if no name is found. The returned string is managed internally and must not be freed by the caller. It will be released when address hashtables are cleared (e.g., due to preference changes or redissection).
get_hostname_wmem() for better memory management.| addr | IPv4 address in host byte order. |
| WS_DLL_PUBLIC const char * get_hostname6 | ( | const ws_in6_addr * | ad | ) |
Resolves an IPv6 address to a hostname or numeric string.
get_hostname6 returns the host name, or numeric addr if not found. The string does not have to be freed; it will be freed when the address hashtables are emptied (e.g., when preferences change or upon redissection.) However, this increases persistent memory usage even when host name lookups are off.
This might get deprecated in the future for get_hostname6_wmem.
| ad | Pointer to the IPv6 address. |
| WS_DLL_PUBLIC char * get_hostname6_wmem | ( | wmem_allocator_t * | allocator, |
| const ws_in6_addr * | ad | ||
| ) |
Resolves an IPv6 address to a hostname using a memory allocator.
Returns a newly allocated string representing the hostname or numeric address for the given IPv6 address.
| allocator | Memory allocator scope. |
| ad | Pointer to the IPv6 address. |
| WS_DLL_PUBLIC const char * get_hostname_ss7pc | ( | const uint8_t | ni, |
| const uint32_t | pc | ||
| ) |
Resolves an SS7 Point Code to a hostname.
Returns a logical name if found, or a formatted Point Code string.
| ni | Network Indicator. |
| pc | Point Code. |
| WS_DLL_PUBLIC char * get_hostname_wmem | ( | wmem_allocator_t * | allocator, |
| const unsigned | addr | ||
| ) |
Resolve an IPv4 address to its host name using scoped memory allocation.
Returns a string containing the host name associated with the given IPv4 address, or a numeric string in the format "%d.%d.%d.%d" if no name is found. The returned string is allocated using the provided wmem_allocator_t, allowing flexible memory management across dissector passes or UI components.
This function is preferred over get_hostname() for memory safety and scoped lifetime control, especially in environments with redissection or preference reloads.
| allocator | Memory allocator used to allocate the returned string. |
| addr | IPv4 address in host byte order. |
| WS_DLL_PUBLIC wmem_map_t * get_ipv4_hash_table | ( | void | ) |
Retrieves the IPv4 address hashtable.
Returns a pointer to the hashtable mapping IPv4 addresses to resolved hostnames.
| WS_DLL_PUBLIC wmem_map_t * get_ipv6_hash_table | ( | void | ) |
Retrieves the IPv6 address hashtable.
Returns a pointer to the hashtable mapping IPv6 addresses to resolved hostnames.
| WS_DLL_PUBLIC wmem_map_t * get_ipxnet_hash_table | ( | void | ) |
Retrieves the IPX network hashtable.
Returns a pointer to the hashtable mapping IPX network numbers to resolved names.
| WS_DLL_PUBLIC char * get_ipxnet_name | ( | wmem_allocator_t * | allocator, |
| const uint32_t | addr | ||
| ) |
Resolves an IPX network number to a name.
Returns a logical name or formatted hex string.
get_ipxnet_name returns the logical name if found in an ipxnets file, or a string formatted with "%X" if not.
| allocator | Memory allocator scope. |
| addr | IPX network number. |
| WS_DLL_PUBLIC wmem_map_t * get_manuf_hashtable | ( | void | ) |
Retrieves the manufacturer hashtable.
Returns a pointer to the hashtable mapping MAC address prefixes to manufacturer names.
|
extern |
Resolves a 3-octet OUI to a short vendor name.
Given a sequence of 3 octets containing an OID, get_manuf_name() returns an abbreviated form of the vendor name, or "%02x:%02x:%02x" if not known. (The short form of the name is roughly similar in length to the hexstring, so that they may be used in similar places.)
| addr | Pointer to the OUI bytes. |
| size | Number of bytes (typically 3). |
| WS_DLL_PUBLIC const char * get_manuf_name_if_known | ( | const uint8_t * | addr, |
| size_t | size | ||
| ) |
Resolves an OUI to a full vendor name if known.
Given a sequence of 3 or more octets containing an OUI, get_manuf_name_if_known() returns the vendor name, or NULL if not known.
| addr | Pointer to the OUI bytes. |
| size | Number of bytes (≥3). |
| WS_DLL_PUBLIC wmem_map_t * get_serv_port_hashtable | ( | void | ) |
Retrieves the service port hashtable.
Returns a pointer to the hashtable mapping TCP/UDP port numbers to service names.
| WS_DLL_PUBLIC wmem_map_t * get_vlan_hash_table | ( | void | ) |
Retrieves the VLAN ID hashtable.
Returns a pointer to the hashtable mapping VLAN identifiers to resolved names.
| WS_DLL_PUBLIC char * get_vlan_name | ( | wmem_allocator_t * | allocator, |
| const uint16_t | id | ||
| ) |
Resolves a VLAN ID to a name.
Returns a logical name or the VLAN ID as a string.
get_vlan_name returns the logical name if found in a vlans file, or the VLAN ID itself as a string if not found
| allocator | Memory allocator scope. |
| id | VLAN identifier. |
| WS_DLL_PUBLIC wmem_map_t * get_wka_hashtable | ( | void | ) |
Retrieves the well-known address (WKA) hashtable.
Returns a pointer to the hashtable mapping protocol-specific well-known addresses to names.
| WS_DLL_PUBLIC bool host_name_lookup_process | ( | void | ) |
Process outstanding asynchronous host name lookups via c-ares.
If c-ares is enabled, this function checks for completed host name resolutions and updates internal state accordingly. It is invoked periodically via a GLIB timeout in Wireshark, and before each packet is processed during the first pass of two-pass TShark analysis.
| WS_DLL_LOCAL void host_name_lookup_reset | ( | const char * | app_env_var_prefix | ) |
Reinitialize hostname resolution subsystem.
Clears any cached hostname resolution results. Intended for internal use by the epan core only.
| WS_DLL_LOCAL gboolean ipv6_equal | ( | const void * | v1, |
| const void * | v2 | ||
| ) |
Compares two IPv6 addresses for equality.
Performs a byte-wise comparison of two IPv6 addresses. Intended for internal use by the epan core only.
| v1 | Pointer to the first IPv6 address. |
| v2 | Pointer to the second IPv6 address. |
| WS_DLL_LOCAL unsigned ipv6_oat_hash | ( | const void * | key | ) |
Computes a hash value for an IPv6 address using OAT hashing.
Generates a hash suitable for use in hash tables. Intended for internal use by the epan core only.
| key | Pointer to the IPv6 address (e.g., struct in6_addr*). |
| WS_DLL_LOCAL void name_resolver_init | ( | void | ) |
Initializes the name resolution subsystem.
Sets up internal state for hostname and address resolution. Intended for internal use by the epan core only.
| WS_DLL_PUBLIC hashipv4_t * new_ipv4 | ( | const unsigned | addr | ) |
Construct a new IPv4 object from a 32-bit address.
Creates and returns a hashipv4_t instance initialized with the given IPv4 address. The address should be provided in host byte order as a 32-bit unsigned integer.
| addr | IPv4 address in host byte order. |
hashipv4_t object. | WS_DLL_PUBLIC char * port_with_resolution_to_str | ( | wmem_allocator_t * | scope, |
| port_type | proto, | ||
| unsigned | port | ||
| ) |
Format a port number with its resolved service name.
Returns a string in the format "ServiceName (port)", such as "HTTP (80)", based on the specified protocol and port number. If no known service name exists for the port, the numeric value is used as both the name and number. The result is allocated using the provided wmem_allocator_t.
| scope | Memory allocator used to allocate the returned string. |
| proto | Protocol type (e.g., PT_TCP, PT_UDP). |
| port | Port number to format. |
| WS_DLL_PUBLIC int port_with_resolution_to_str_buf | ( | char * | buf, |
| unsigned long | buf_size, | ||
| port_type | proto, | ||
| unsigned | port | ||
| ) |
Format a port number with its resolved service name into a buffer.
Writes a string in the format "ServiceName (port)"—such as "SSH (22)"— to the provided buffer, based on the specified protocol and port number. If no known service name exists, the numeric value is used as both name and number. This function is typically used for logging, diagnostics, or UI display where fixed-size output is required.
The return value matches that of snprintf(): the number of characters that would have been written if the buffer were large enough.
| buf | Output buffer to receive the formatted string. |
| buf_size | Size of the output buffer in bytes. |
| proto | Protocol type (e.g., PT_TCP, PT_UDP). |
| port | Port number to format. |
| WS_DLL_PUBLIC char * sctp_port_to_display | ( | wmem_allocator_t * | allocator, |
| unsigned | port | ||
| ) |
Resolve an SCTP port number to its display name.
Returns a human-readable name for the specified SCTP port, such as "Diameter" for port 3868. If no known name is associated with the port, the function returns the numeric port value as a string. The result is allocated using the provided wmem_allocator_t.
| allocator | Memory allocator used to allocate the returned string. |
| port | SCTP port number to resolve. |
| WS_DLL_PUBLIC const char * serv_name_lookup | ( | port_type | proto, |
| unsigned | port | ||
| ) |
Resolve a port number to its well-known service name.
Returns a string representing the service name associated with the given port and protocol (e.g., "HTTP" for TCP port 80). If no known service name exists for the specified port, the function returns the numeric port value as a string.
| proto | Protocol type (e.g., PT_TCP, PT_UDP). |
| port | Port number to resolve. |
| WS_DLL_PUBLIC void set_resolution_synchrony | ( | bool | synchronous | ) |
Sets the resolution mode to synchronous or asynchronous.
Controls whether name/address resolution is performed synchronously or deferred. Intended for global configuration; future versions may support per-session control.
| synchronous | If true, resolution is performed synchronously. |
| WS_DLL_LOCAL bool str_to_eth | ( | const char * | str, |
| uint8_t(*) | eth_bytes[6] | ||
| ) |
Parses a string as an Ethernet (MAC) address.
Converts a colon- or dash-separated MAC address string into a 6-byte array. Intended for internal use by the epan core only.
| str | The input string (e.g., "00:11:22:33:44:55"). |
| eth_bytes | Pointer to a 6-byte buffer to receive the parsed address. |
| WS_DLL_PUBLIC bool str_to_ip | ( | const char * | str, |
| void * | dst | ||
| ) |
Parses a string as an IPv4 address.
Converts a dotted-decimal IPv4 string into a binary representation.
| str | The input string (e.g., "192.168.0.1"). |
| dst | Pointer to a buffer to receive the parsed address (e.g., uint32_t*). |
| WS_DLL_PUBLIC bool str_to_ip6 | ( | const char * | str, |
| void * | dst | ||
| ) |
Parses a string as an IPv6 address.
Converts a colon-separated IPv6 string into a binary representation.
| str | The input string (e.g., "2001:db8::1"). |
| dst | Pointer to a buffer to receive the parsed address (e.g., struct in6_addr*). |
| WS_DLL_PUBLIC char * tcp_port_to_display | ( | wmem_allocator_t * | allocator, |
| unsigned | port | ||
| ) |
Resolve a TCP port number to its display name.
Returns a human-readable name for the specified TCP port, such as "HTTP" for port 80. If no known name is associated with the port, the function returns the numeric port value as a string. The result is allocated using the provided wmem_allocator_t.
| allocator | Memory allocator used to allocate the returned string. |
| port | TCP port number to resolve. |
| WS_DLL_PUBLIC const char * try_enterprises_lookup | ( | uint32_t | value | ) |
Attempt to resolve a private enterprise code to its registered name.
Returns the name associated with the given private enterprise code (PEC), commonly used in SNMP, IPFIX, and other protocol metadata. If the code is not recognized, the function returns NULL.
| value | Private enterprise code to resolve. |
NULL if not found. | WS_DLL_PUBLIC const char * try_serv_name_lookup | ( | port_type | proto, |
| unsigned | port | ||
| ) |
Attempt to resolve a port number to its well-known service name.
Returns the service name associated with the specified port and protocol (e.g., "HTTPS" for TCP port 443). If no known service name exists for the given combination, the function returns NULL.
| proto | Protocol type (e.g., PT_TCP, PT_UDP). |
| port | Port number to resolve. |
NULL if not found. | WS_DLL_PUBLIC const char * tvb_get_ether_name | ( | tvbuff_t * | tvb, |
| int | offset | ||
| ) |
Resolves an Ethernet address from a tvbuff.
Returns a logical name or vendor string for the Ethernet address at the given offset.
| tvb | Pointer to the tvbuff. |
| offset | Offset of the Ethernet address. |
| WS_DLL_PUBLIC const char * tvb_get_manuf_name | ( | tvbuff_t * | tvb, |
| int | offset | ||
| ) |
Resolves a 3-octet OUI from a tvbuff to a short vendor name.
Given a tvbuff and an offset in that tvbuff for a 3-octet OID, tvb_get_manuf_name() returns an abbreviated vendor name, or "%02x:%02x:%02x" if not known.
| tvb | Pointer to the tvbuff. |
| offset | Offset of the OUI. |
| WS_DLL_PUBLIC const char * tvb_get_manuf_name_if_known | ( | tvbuff_t * | tvb, |
| int | offset | ||
| ) |
Resolves a 3-octet OUI from a tvbuff to a full vendor name.
Given a tvbuff and an offset in that tvbuff for a 3-octet OID, tvb_get_manuf_name_if_known() returns the full vendor name, or NULL if not known.
| tvb | Pointer to the tvbuff. |
| offset | Offset of the OUI. |
| WS_DLL_PUBLIC char * udp_port_to_display | ( | wmem_allocator_t * | allocator, |
| unsigned | port | ||
| ) |
Resolve a UDP port number to its display name.
Returns a human-readable name for the specified UDP port, such as "DNS" for port 53. If no known name is associated with the port, the function returns the numeric port value as a string. The result is allocated using the provided wmem_allocator_t.
| allocator | Memory allocator used to allocate the returned string. |
| port | UDP port number to resolve. |
| WS_DLL_PUBLIC const char * uint_get_manuf_name_if_known | ( | const uint32_t | oid | ) |
Resolves a 24-bit OUI integer to a vendor name.
Given an integer containing a 24-bit OUI (or CID), uint_get_manuf_name_if_known() returns the vendor name, or NULL if not known.
| oid | 24-bit OUI or CID. |