# Net Manager<a name="EN-US_TOPIC_0000001105058232"></a> - [简介](#简介) - [目录](#目录) - [约æŸ](#约æŸ) - [接å£è¯´æ˜Ž](#接å£è¯´æ˜Ž) - [使用说明](#使用说明) - [相关仓](#相关仓) ## 简介 网络管ç†ä»‹ç»ï¼š ​ 网络管ç†ä¸»è¦åˆ†ä¸ºè¿žæŽ¥ç®¡ç†ã€ç–略管ç†ã€æµé‡ç®¡ç†ã€ç½‘络共享ã€VPN管ç†ä»¥åŠä»¥å¤ªç½‘è¿žæŽ¥ç‰æ¨¡å—,其ä¸è¿žæŽ¥ç®¡ç†ã€ç–略管ç†ã€æµé‡ç®¡ç†ä¸ºåŸºç¡€æœåŠ¡ï¼Œå½’æ¡£åœ¨netmanager_base仓,以太网连接ã€ç½‘络共享ã€VPN管ç†ä¸‰ä¸ªæ¨¡å—为å¯è£å‰ªæ‰©å±•模å—,归档在netmanager_ext仓,netmanager_ext编译构建ä¾èµ–netmanager_base库内容。如图1ï¼šç½‘ç»œç®¡ç†æž¶æž„图; **图 1** ç½‘ç»œç®¡ç†æž¶æž„图  ## 目录 ``` foundation/communication/netmanager_ext/ ├─figures #README用于的png图片 ├─frameworks #框架层目录 │ ├─js #js接å£å®žçް │ └─native #C++接å£å®žçް ├─interfaces #C++接å£å¤´æ–‡ä»¶ │ ├─innerkits #éƒ¨ä»¶é—´çš„å†…éƒ¨æŽ¥å£ â”‚ └─kits #对应用æä¾›çš„æŽ¥å£ï¼ˆä¾‹å¦‚JS接å£ï¼‰ ├─sa_profile #SAæœåŠ¡é…置文件 ├─services #C++内部实现 │ ├─ethernetmanager #ä»¥å¤ªç½‘æ¨¡å— â”‚ └─networksharemanager #ç½‘ç»œå…±äº«æ¨¡å— â”œâ”€test #å•元测试代ç │ ├─ethernetmanager #以太网模å—å•元测试 │ └─networkshare #网络共享模å—å•元测试 └─utils #æ ¸å¿ƒæœåС工具代ç 目录 ├─event_report #æ ¸å¿ƒæœåŠ¡äº‹ä»¶å·¥å…·ç›®å½• └─log #æ ¸å¿ƒæœåŠ¡æ—¥å¿—å·¥å…·ç›®å½• ``` ## çº¦æŸ - å¼€å‘è¯è¨€ï¼šC++ JS ## 接å£è¯´æ˜Ž | 类型 | æŽ¥å£ | 功能说明 | | ---- | ---- | ---- | | ohos.net.ethernet | function setIfaceConfig\(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback<void\>\): void; |设置网络接å£é…置信æ¯ï¼Œè°ƒç”¨callback | | ohos.net.ethernet | function setIfaceConfig\(iface: string, ic: InterfaceConfiguration\): Promise<void\>; |设置网络接å£é…置信æ¯ï¼Œè¿”回Promise | | ohos.net.ethernet | function getIfaceConfig\(iface: string, callback: AsyncCallback<InterfaceConfiguration\>\): void; |获å–网络接å£é…置信æ¯ï¼Œè°ƒç”¨callback | | ohos.net.ethernet | function getIfaceConfig\(iface: string\): Promise<InterfaceConfiguration\>; |获å–网络接å£é…置信æ¯ï¼Œè¿”回Promise | | ohos.net.ethernet | function isIfaceActive\(iface?: string, callback: AsyncCallback<number\>\): void; |åˆ¤æ–æŽ¥å£æ˜¯å¦å·²æ¿€æ´»ï¼Œè°ƒç”¨callback | | ohos.net.ethernet | function isIfaceActive\(iface?: string\): Promise<number\>; |åˆ¤æ–æŽ¥å£æ˜¯å¦å·²æ¿€æ´»ï¼Œè¿”回Promise | | ohos.net.ethernet | function getAllActiveIfaces\(callback: AsyncCallback<Array\<string\>\>\): void; |èŽ·å–æ´»åŠ¨çš„ç½‘ç»œæŽ¥å£ï¼Œè°ƒç”¨callback | | ohos.net.ethernet | function getAllActiveIfaces\(\): Promise<Array\<string\>\>; |èŽ·å–æ´»åŠ¨çš„ç½‘ç»œæŽ¥å£ï¼Œè¿”回Promise | | ohos.net.sharing | function isSharingSupported(callback: AsyncCallback\<boolean>): void; | 获å–当å‰ç³»ç»Ÿæ˜¯å¦æ”¯æŒç½‘络共享,调用callback | | ohos.net.sharing | function isSharingSupported(): Promise\<boolean>; | 获å–当å‰ç³»ç»Ÿæ˜¯å¦æ”¯æŒç½‘络共享,返回promise | | ohos.net.sharing | function isSharing(callback: AsyncCallback\<boolean>): void; | 获å–当å‰å…±äº«çжæ€ï¼Œè°ƒç”¨callback | | ohos.net.sharing | function isSharing(): Promise\<boolean>; | 获å–当å‰å…±äº«çжæ€ï¼Œè¿”回promise | | ohos.net.sharing | function startSharing(type: SharingIfaceType, callback: AsyncCallback\<void>): void; | å¼€å¯å…±äº«ï¼Œtypeä¸ºå…±äº«ç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,调用callback | | ohos.net.sharing | function startSharing(type: SharingIfaceType): Promise\<void>; | å¼€å¯å…±äº«ï¼Œtypeä¸ºå…±äº«ç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,返回promise | | ohos.net.sharing | function stopSharing(type: SharingIfaceType, callback: AsyncCallback\<void>): void; | åœæ¢æŒ‡å®šç±»åž‹å…±äº«ï¼Œtype为共享类型,包括Wifiçƒç‚¹ã€è“牙ã€USB,调用callback | | ohos.net.sharing | function stopSharing(type: SharingIfaceType): Promise\<void>; | åœæ¢æŒ‡å®šç±»åž‹å…±äº«ï¼Œtype为共享类型,包括Wifiçƒç‚¹ã€è“牙ã€USB,返回promise | | ohos.net.sharing | function getStatsRxBytes(callback: AsyncCallback\<number>): void; | 获å–共享接收数æ®é‡ï¼Œå•ä½KB,调用callback | | ohos.net.sharing | function getStatsRxBytes(): Promise\<number>; | 获å–共享接收数æ®é‡ï¼Œå•ä½KB,返回promise | | ohos.net.sharing | function getStatsTxBytes(callback: AsyncCallback\<number>): void; | 获å–共享å‘逿•°æ®é‡ï¼Œå•ä½KB,调用callback | | ohos.net.sharing | function getStatsTxBytes(): Promise\<number>; | 获å–共享å‘逿•°æ®é‡ï¼Œå•ä½KB,返回promise | | ohos.net.sharing | function getStatsTotalBytes(callback: AsyncCallback\<number>): void; | 获å–å…±äº«æ€»æ•°æ®æµé‡ï¼Œå•ä½KB,调用callback | | ohos.net.sharing | function getStatsTotalBytes(): Promise\<number>; | 获å–å…±äº«æ€»æ•°æ®æµé‡ï¼Œå•ä½KB,返回promise | | ohos.net.sharing | function getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback\<Array\<string>>): void; | èŽ·å–æŒ‡å®šçжæ€çš„网å¡å称,state为状æ€ï¼ŒåŒ…括æ£åœ¨å…±äº«ã€å¯å…±äº«ã€å…±äº«é”™è¯¯ï¼Œè°ƒç”¨callback | | ohos.net.sharing | function getSharingIfaces(state: SharingIfaceState): Promise\<Array\<string>>; | èŽ·å–æŒ‡å®šçжæ€çš„网å¡å称,state为状æ€ï¼ŒåŒ…括æ£åœ¨å…±äº«ã€å¯å…±äº«ã€å…±äº«é”™è¯¯ï¼Œè¿”回promise | | ohos.net.sharing | function getSharingState(type: SharingIfaceType, callback: AsyncCallback\<SharingIfaceState>): void; | èŽ·å–æŒ‡å®šç±»åž‹å…±äº«çжæ€ï¼Œtypeä¸ºç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,调用callback | | ohos.net.sharing | function getSharingState(type: SharingIfaceType): Promise\<SharingIfaceState>; | èŽ·å–æŒ‡å®šç±»åž‹å…±äº«çжæ€ï¼Œtypeä¸ºç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,返回promise | | ohos.net.sharing | function getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback\<Array\<string>>): void; | 获å–与指定类型匹é…çš„ç½‘å¡æ£åˆ™è¡¨è¾¾å¼åˆ—表,typeä¸ºç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,调用callback | | ohos.net.sharing | function getSharableRegexes(type: SharingIfaceType): Promise\<Array\<string>>; | 获å–与指定类型匹é…çš„ç½‘å¡æ£åˆ™è¡¨è¾¾å¼åˆ—表,typeä¸ºç±»åž‹ï¼Œç›®å‰æ”¯æŒWifiçƒç‚¹ã€è“牙ã€USB,返回promise | | ohos.net.sharing | function on(type: 'sharingStateChange', callback: Callback\<boolean>): void; | æ³¨å†Œå…±äº«çŠ¶æ€æ”¹å˜ç›‘å¬ | | ohos.net.sharing | function off(type: 'sharingStateChange', callback?: Callback\<boolean>): void; | æ³¨é”€å…±äº«çŠ¶æ€æ”¹å˜ç›‘å¬ | | ohos.net.sharing | unction on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void; | 注册指定网å¡å…±äº«çŠ¶æ€æ”¹å˜ç›‘å¬ | | ohos.net.sharing | function off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void; | 注销指定网å¡å…±äº«çŠ¶æ€æ”¹å˜ç›‘å¬ | | ohos.net.sharing | function on(type: 'sharingUpstreamChange', callback: Callback\<NetHandle>): void; | æ³¨å†Œä¸Šè¡Œç½‘å¡æ”¹å˜ç›‘å¬ | | ohos.net.sharing | function off(type: 'sharingUpstreamChange', callback?: Callback\<NetHandle>): void; | æ³¨é”€ä¸Šè¡Œç½‘å¡æ”¹å˜ç›‘å¬ | ## 接å£ä½¿ç”¨è¯´æ˜Ž ### 设置网络接å£é…ç½®ä¿¡æ¯ * 示例 ```javascript import ethernet from '@ohos.net.ethernet' ``` ```javascript ethernet.setIfaceConfig("eth0", {mode:ethernet.STATIC,ipAddr:"192.168.1.123", routeAddr:"192.168.1.1", gateAddr:"192.168.1.1", maskAddr:"255.255.255.0", dnsAddr0:"1.1.1.1", dnsAddr1:"2.2.2.2"}, (error) => { if (error) { console.log("setIfaceConfig callback error = " + error); } else { console.log("setIfaceConfig callback ok "); } }); ``` ### 获å–网络接å£é…ç½®ä¿¡æ¯ * 示例 ```javascript import ethernet from '@ohos.net.ethernet' ``` ```javascript ethernet.getIfaceConfig("eth0", (error, value) => { if (error) { console.log("getIfaceConfig callback error = " + error); } else { console.log("getIfaceConfig callback mode = " + value.mode); console.log("getIfaceConfig callback ipAddr = " + value.ipAddr); console.log("getIfaceConfig callback routeAddr = " + value.routeAddr); console.log("getIfaceConfig callback gateAddr = " + value.gateAddr); console.log("getIfaceConfig callback maskAddr = " + value.maskAddr); console.log("getIfaceConfig callback dns0Addr = " + value.dns0Addr); console.log("getIfaceConfig callback dns1Addr = " + value.dns1Addr); } }); ``` ### 开始网络共享 * 示例 ```javascript import sharing from '@ohos.net.sharing' ``` ```javascript sharing.startSharing(this.sharingType,(err)=>{ this.callBack(err); }) ``` ### åœæ¢ç½‘络共享 * 示例 ```javascript import sharing from '@ohos.net.sharing' ``` ```javascript sharing.stopSharing(this.sharingType,(err)=>{ this.callBack(err); }) ``` ## 相关仓 [网络管ç†å系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E7%BD%91%E7%BB%9C%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) **communication_netmanager_ext** [communication_netmanager_base](https://gitee.com/openharmony/communication_netmanager_base) [communication_netstack](https://gitee.com/openharmony/communication_netstack)