ccohen / huawei-api
用于与华为E5180路由器交互的简单API
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-10 04:43:06 UTC
README
此项目将让您轻松地与华为E5180 Cube路由器进行交互。
此路由器由3 DK部署,作为他们的4G连接的“家用路由器”。如果您从3订购100GB或以上的套餐,可以免费获得。购买链接:[https://www.3.dk/mobiler-tablets/modems-routere/huawei/huawei-e5180-cube](https://www.3.dk/mobiler-tablets/modems-routere/huawei/huawei-e5180-cube)
没有广告或联盟,我甚至不会真的推荐这款路由器。它速度很快,但WiFi不是最好的,我见过当有很多客户端在您的(W)LAN上时,它多次过载。4G链路是稳定的,但LAN/WiFi/路由器部分真的很差,所以我个人使用D-link DIR-810l作为路由器,将其WAN端口连接到华为路由器的单个LAN端口,这样它就可以专注于仅提供4G互联网。
特性
- 通过移动网络发送短信
- 接收短信(您需要定期轮询此操作)
- 删除短信(以避免填满)
- 将短信标记为已读
- 查询路由器状态(很多信息)
- 查询流量统计信息(相当多的信息)
- 获取当前PLMN(您所在的网络)
- 获取摇篮状态(硬件信息,如果有的话,电池等)
- 获取WLAN客户端
- 检查设备上的通知(包括短信和更新)
- 查询LED状态(顶部的蓝色LED)
- 开启或关闭LED。
您可以用它做什么?您是否需要一个免费的家用短信网关?现在您有了,如果您有这款路由器。我知道3.dk截至2015年6月19日,外发短信费用为0.20 DKK,但请在发送短信之前检查您自己的服务提供商。如果您突然使用它作为商业网关,发送和接收数千条短信消息,您的服务提供商可能会对此感到愤怒。
如果您像我一样,住在没有通过有线网络提供良好互联网的农村,并且想要一个像这样的4G路由器,您也可以创建自己的接口来监控您的带宽账单。
此外,蓝色LED很有趣。您可以轻敲顶部,以开启和关闭它,所以我已经有了通过将LED变为蓝色来让我知道我是否收到新电子邮件的计划。
文档
我该如何使用这个库?
安装后,像往常一样将composer自动加载器包含到您的项目中,然后创建一个Router对象。设置您的路由器地址和登录。现在这里列出的其他所有功能都应该工作,至少在E5180上是这样。我无法谈论其他路由器的兼容性。
require_once 'vendor/autoload.php'; // The router class is the main entry point for interaction. $router = new HSPDev\HuaweiApi\Router; // If specified without http or https, assumes http:// $router->setAddress('192.168.8.1'); // Username and password. // Username is always admin as far as I can tell. $router->login('admin', 'your-password'); var_dump($router->getLedStatus());
这将获取顶部蓝色LED的当前状态,true或false表示开启或关闭。如果这似乎有效,请尝试以下行代替
var_dump($router->setLedOn(!$router->getLedStatus()));
现在每次运行脚本时,它应该根据其当前状态开启或关闭LED。
现在让我们试试别的。
var_dump($router->getNetwork());
它应该返回类似以下内容,表明我目前处于“3 DK”网络。您可以通过查找PLMN列表来获取数字代码。
object(SimpleXMLElement)#8 (5) { ["State"]=> string(1) "0" ["FullName"]=> string(4) "3 DK" ["ShortName"]=> string(4) "3 DK" ["Numeric"]=> string(5) "23806" ["Rat"]=> string(1) "2" }
关于一些短信呢?
var_dump($router->getInbox());
在我的情况下,它返回了这个,这意味着我没有新消息。
object(SimpleXMLElement)#6 (2) { ["Count"]=> string(1) "0" ["Messages"]=> object(SimpleXMLElement)#4 (0) { } }
这不可能是真的。让我们给路由器发送一些短信。您可能可以在账单上找到您的路由器电话号码,有时在Web界面中,或者通过简单地登录Web界面并发送给自己一条消息。在向我的路由器发送短信后,我得到了以下结果
object(SimpleXMLElement)#6 (2) { ["Count"]=> string(1) "1" ["Messages"]=> object(SimpleXMLElement)#4 (1) { ["Message"]=> object(SimpleXMLElement)#8 (9) { ["Smstat"]=> string(1) "0" ["Index"]=> string(5) "40000" ["Phone"]=> string(11) "(my phone number)" ["Content"]=> string(3) "Lol" ["Date"]=> string(19) "2015-06-19 15:27:15" ["Sca"]=> object(SimpleXMLElement)#9 (0) { } ["SaveType"]=> string(1) "4" ["Priority"]=> string(1) "0" ["SmsType"]=> string(1) "1" } } }
查看Router.php类内部以了解您可以使用的方法,它非常详细地记录了文档,但我仍然会在这里列出。
- login($username, $password) 用户名通常是"admin"。密码是Web界面的密码。
- getStatus() 提供路由器状态信息。
- getTrafficStats() 提供流量信息。
- getMonthStats() 对于当前月份(如果设置了限制)执行相同操作。
- getNetwork() 提供当前网络信息。但是,我找不到任何条形图。
- getCraddleStatus() 提供大量信息。我怀疑如果您有电池状态信息,这里可以获取。
- getSmsCount() 不返回整数,而是一个XML对象。
- getWlanClients() 获取WlanClients列表,如果它们的IP地址是0.0.0.0,则表示断开连接。
- getNotifications() 做它所说的事情。
- setLedOn(boolean $on) 用"true"调用以打开,用"false"关闭。
- getLedStatus() LED状态的true/false。
- isLoggedIn() true/false用于检查是否已登录。
- getInbox($page = 1, $count = 20, $unreadPreferred = false) 默认值适用于大多数实验。page/count用于分页。
- deleteSms($index) 提供用于删除的SMS索引。如果没有找到也返回true。
- sendSms($receiver, $message) 非常直观。可能返回true但不会发送。存在一个API用于查询发送状态,但我不关心它。
- maskSMSAsRead($index) 将短信标记为已读。
我不保证这些功能会像广告宣传的那样或根本不起作用,只是玩得开心。它应该能帮助你入门。
华为路由器API错误代码
有时,如果您正在尝试使用华为API并与它通信,您将收到随机的错误代码。这很糟糕,但说得好听一点,因为没有关于发生什么错误的信息。因此,我已经找到了华为API的错误代码列表,我知道它适用于E5180,也可能适用于其他设备。所以如果你搜索了“华为路由器API错误”或其他类似的内容,恭喜你,今天是你的幸运日。请注意,这里没有列出所有代码,但大多数都有。
ERROR_BUSY = 100004 ERROR_CHECK_SIM_CARD_CAN_UNUSEABLE = 101004 ERROR_CHECK_SIM_CARD_PIN_LOCK = 101002 ERROR_CHECK_SIM_CARD_PUN_LOCK = 101003 ERROR_COMPRESS_LOG_FILE_FAILED = 103102 ERROR_CRADLE_CODING_FAILED = 118005 ERROR_CRADLE_GET_CRURRENT_CONNECTED_USER_IP_FAILED = 118001 ERROR_CRADLE_GET_CRURRENT_CONNECTED_USER_MAC_FAILED = 118002 ERROR_CRADLE_GET_WAN_INFORMATION_FAILED = 118004 ERROR_CRADLE_SET_MAC_FAILED = 118003 ERROR_CRADLE_UPDATE_PROFILE_FAILED = 118006 ERROR_DEFAULT = -1 ERROR_DEVICE_AT_EXECUTE_FAILED = 103001 ERROR_DEVICE_COMPRESS_LOG_FILE_FAILED = 103015 ERROR_DEVICE_GET_API_VERSION_FAILED = 103006 ERROR_DEVICE_GET_AUTORUN_VERSION_FAILED = 103005 ERROR_DEVICE_GET_LOG_INFORMATON_LEVEL_FAILED = 103014 ERROR_DEVICE_GET_PC_AISSST_INFORMATION_FAILED = 103012 ERROR_DEVICE_GET_PRODUCT_INFORMATON_FAILED = 103007 ERROR_DEVICE_NOT_SUPPORT_REMOTE_OPERATE = 103010 ERROR_DEVICE_PIN_MODIFFY_FAILED = 103003 ERROR_DEVICE_PIN_VALIDATE_FAILED = 103002 ERROR_DEVICE_PUK_DEAD_LOCK = 103011 ERROR_DEVICE_PUK_MODIFFY_FAILED = 103004 ERROR_DEVICE_RESTORE_FILE_DECRYPT_FAILED = 103016 ERROR_DEVICE_RESTORE_FILE_FAILED = 103018 ERROR_DEVICE_RESTORE_FILE_VERSION_MATCH_FAILED = 103017 ERROR_DEVICE_SET_LOG_INFORMATON_LEVEL_FAILED = 103013 ERROR_DEVICE_SET_TIME_FAILED = 103101 ERROR_DEVICE_SIM_CARD_BUSY = 103008 ERROR_DEVICE_SIM_LOCK_INPUT_ERROR = 103009 ERROR_DHCP_ERROR = 104001 ERROR_DIALUP_ADD_PRORILE_ERROR = 107724 ERROR_DIALUP_DIALUP_MANAGMENT_PARSE_ERROR = 107722 ERROR_DIALUP_GET_AUTO_APN_MATCH_ERROR = 107728 ERROR_DIALUP_GET_CONNECT_FILE_ERROR = 107720 ERROR_DIALUP_GET_PRORILE_LIST_ERROR = 107727 ERROR_DIALUP_MODIFY_PRORILE_ERROR = 107725 ERROR_DIALUP_SET_AUTO_APN_MATCH_ERROR = 107729 ERROR_DIALUP_SET_CONNECT_FILE_ERROR = 107721 ERROR_DIALUP_SET_DEFAULT_PRORILE_ERROR = 107726 ERROR_DISABLE_AUTO_PIN_FAILED = 101008 ERROR_DISABLE_PIN_FAILED = 101006 ERROR_ENABLE_AUTO_PIN_FAILED = 101009 ERROR_ENABLE_PIN_FAILED = 101005 ERROR_FIRST_SEND = 1 ERROR_FORMAT_ERROR = 100005 ERROR_GET_CONFIG_FILE_ERROR = 100008 ERROR_GET_CONNECT_STATUS_FAILED = 102004 ERROR_GET_NET_TYPE_FAILED = 102001 ERROR_GET_ROAM_STATUS_FAILED = 102003 ERROR_GET_SERVICE_STATUS_FAILED = 102002 ERROR_LANGUAGE_GET_FAILED = 109001 ERROR_LANGUAGE_SET_FAILED = 109002 ERROR_LOGIN_ALREADY_LOGINED = 108003 ERROR_LOGIN_MODIFY_PASSWORD_FAILED = 108004 ERROR_LOGIN_NO_EXIST_USER = 108001 ERROR_LOGIN_PASSWORD_ERROR = 108002 ERROR_LOGIN_TOO_MANY_TIMES = 108007 ERROR_LOGIN_TOO_MANY_USERS_LOGINED = 108005 ERROR_LOGIN_USERNAME_OR_PASSWORD_ERROR = 108006 ERROR_NET_CURRENT_NET_MODE_NOT_SUPPORT = 112007 ERROR_NET_MEMORY_ALLOC_FAILED = 112009 ERROR_NET_NET_CONNECTED_ORDER_NOT_MATCH = 112006 ERROR_NET_REGISTER_NET_FAILED = 112005 ERROR_NET_SIM_CARD_NOT_READY_STATUS = 112008 ERROR_NOT_SUPPORT = 100002 ERROR_NO_DEVICE = -2 ERROR_NO_RIGHT = 100003 ERROR_NO_SIM_CARD_OR_INVALID_SIM_CARD = 101001 ERROR_ONLINE_UPDATE_ALREADY_BOOTED = 110002 ERROR_ONLINE_UPDATE_CANCEL_DOWNLODING = 110007 ERROR_ONLINE_UPDATE_CONNECT_ERROR = 110009 ERROR_ONLINE_UPDATE_GET_DEVICE_INFORMATION_FAILED = 110003 ERROR_ONLINE_UPDATE_GET_LOCAL_GROUP_COMMPONENT_INFORMATION_FAILED = 110004 ERROR_ONLINE_UPDATE_INVALID_URL_LIST = 110021 ERROR_ONLINE_UPDATE_LOW_BATTERY = 110024 ERROR_ONLINE_UPDATE_NEED_RECONNECT_SERVER = 110006 ERROR_ONLINE_UPDATE_NOT_BOOT = 110023 ERROR_ONLINE_UPDATE_NOT_FIND_FILE_ON_SERVER = 110005 ERROR_ONLINE_UPDATE_NOT_SUPPORT_URL_LIST = 110022 ERROR_ONLINE_UPDATE_SAME_FILE_LIST = 110008 ERROR_ONLINE_UPDATE_SERVER_NOT_ACCESSED = 110001 ERROR_PARAMETER_ERROR = 100006 ERROR_PB_CALL_SYSTEM_FUCNTION_ERROR = 115003 ERROR_PB_LOCAL_TELEPHONE_FULL_ERROR = 115199 ERROR_PB_NULL_ARGUMENT_OR_ILLEGAL_ARGUMENT = 115001 ERROR_PB_OVERTIME = 115002 ERROR_PB_READ_FILE_ERROR = 115005 ERROR_PB_WRITE_FILE_ERROR = 115004 ERROR_SAFE_ERROR = 106001 ERROR_SAVE_CONFIG_FILE_ERROR = 100007 ERROR_SD_DIRECTORY_EXIST = 114002 ERROR_SD_FILE_EXIST = 114001 ERROR_SD_FILE_IS_UPLOADING = 114007 ERROR_SD_FILE_NAME_TOO_LONG = 114005 ERROR_SD_FILE_OR_DIRECTORY_NOT_EXIST = 114004 ERROR_SD_IS_OPERTED_BY_OTHER_USER = 114004 ERROR_SD_NO_RIGHT = 114006 ERROR_SET_NET_MODE_AND_BAND_FAILED = 112003 ERROR_SET_NET_MODE_AND_BAND_WHEN_DAILUP_FAILED = 112001 ERROR_SET_NET_SEARCH_MODE_FAILED = 112004 ERROR_SET_NET_SEARCH_MODE_WHEN_DAILUP_FAILED = 112002 ERROR_SMS_DELETE_SMS_FAILED = 113036 ERROR_SMS_LOCAL_SPACE_NOT_ENOUGH = 113053 ERROR_SMS_NULL_ARGUMENT_OR_ILLEGAL_ARGUMENT = 113017 ERROR_SMS_OVERTIME = 113018 ERROR_SMS_QUERY_SMS_INDEX_LIST_ERROR = 113020 ERROR_SMS_SAVE_CONFIG_FILE_FAILED = 113047 ERROR_SMS_SET_SMS_CENTER_NUMBER_FAILED = 113031 ERROR_SMS_TELEPHONE_NUMBER_TOO_LONG = 113054 ERROR_STK_CALL_SYSTEM_FUCNTION_ERROR = 116003 ERROR_STK_NULL_ARGUMENT_OR_ILLEGAL_ARGUMENT = 116001 ERROR_STK_OVERTIME = 116002 ERROR_STK_READ_FILE_ERROR = 116005 ERROR_STK_WRITE_FILE_ERROR = 116004 ERROR_UNKNOWN = 100001 ERROR_UNLOCK_PIN_FAILED = 101007 ERROR_USSD_AT_SEND_FAILED = 111018 ERROR_USSD_CODING_ERROR = 111017 ERROR_USSD_EMPTY_COMMAND = 111016 ERROR_USSD_ERROR = 111001 ERROR_USSD_FUCNTION_RETURN_ERROR = 111012 ERROR_USSD_IN_USSD_SESSION = 111013 ERROR_USSD_NET_NOT_SUPPORT_USSD = 111022 ERROR_USSD_NET_NO_RETURN = 111019 ERROR_USSD_NET_OVERTIME = 111020 ERROR_USSD_TOO_LONG_CONTENT = 111014 ERROR_USSD_XML_SPECIAL_CHARACTER_TRANSFER_FAILED = 111021 ERROR_WIFI_PBC_CONNECT_FAILED = 117003 ERROR_WIFI_STATION_CONNECT_AP_PASSWORD_ERROR = 117001 ERROR_WIFI_STATION_CONNECT_AP_WISPR_PASSWORD_ERROR = 117004 ERROR_WIFI_WEB_PASSWORD_OR_DHCP_OVERTIME_ERROR = 117002 // My own guess, don't trust this completely. // Unknown URLs are 100002