// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_BASE_NETWORK_INTERFACES_H_ #define NET_BASE_NETWORK_INTERFACES_H_ #include <stdint.h> #include <array> #include <memory> #include <optional> #include <string> #include <vector> #include "net/base/ip_address.h" #include "net/base/net_export.h" #include "net/base/network_change_notifier.h" namespace net { // A subset of IP address attributes which are actionable by the // application layer. Currently unimplemented for all hosts; // IP_ADDRESS_ATTRIBUTE_NONE is always returned. enum IPAddressAttributes { … }; Eui48MacAddress; // struct that is used by GetNetworkList() to represent a network // interface. struct NET_EXPORT NetworkInterface { … }; NetworkInterfaceList; // Policy settings to include/exclude network interfaces. enum HostAddressSelectionPolicy { … }; // Returns list of network interfaces except loopback interface. If an // interface has more than one address, a separate entry is added to // the list for each address. // Can be called only on a thread that allows IO. NET_EXPORT bool GetNetworkList(NetworkInterfaceList* networks, int policy); // Gets the SSID of the currently associated WiFi access point if there is one, // and it is available. SSID may not be available if the app does not have // permissions to access it. On Android M+, the app accessing SSID needs to have // ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION. If there is no WiFi access // point or its SSID is unavailable, an empty string is returned. // Currently only implemented on Linux, ChromeOS, Android and Windows. NET_EXPORT std::string GetWifiSSID(); enum WifiOptions { … }; class NET_EXPORT ScopedWifiOptions { … }; // Set temporary options on all wifi interfaces. // |options| is an ORed bitfield of WifiOptions. // Options are automatically disabled when the scoped pointer // is freed. Currently only available on Windows. NET_EXPORT std::unique_ptr<ScopedWifiOptions> SetWifiOptions(int options); // Returns the hostname of the current system. Returns empty string on failure. NET_EXPORT std::string GetHostName(); } // namespace net #endif // NET_BASE_NETWORK_INTERFACES_H_