现在更多的企业和个人都会用到远程操作,这样可以节省很多亲临现场工作的时间,从而提高了工作效率,远程控制技术的快速发展,除了电脑可以远程控制电脑之外,还可以远程控制手机,那么手机可以远程控制手机吗?我们看看下边的内容就能知道答案了。
怎么远程控制手机?
1、我们需要区分两部手机,控制的手机和被控制的手机,在控制手机安装远程控制软件。
2、我们在被控的手机上安装远程控制软件,可以看到两个软件都显示远程控制手机。
3、我们在被控手机执行root权限,没有root是连接不上的。
4、有的手机在自带的安全管理软件里面自带root功能,也有的需要自己搞成开发版系统可支持。系统分为稳定版与开发版,一般开发版都支持root。就在设置-授权管理-权限管理里面,有个root权限。
5、打开两个手机的软件,用邮箱注册,注册后,登录同一个账号与密码。
6、我们点击首页的这个手机,选择远程控制,连接即可控制。
注意:两个手机都需要网络才可以,否则无法连接。
向日葵让手机可以远程控制手机更简单
手机两部(必须有一部安卓的)。
一、被控端操作
百度下载安装向日葵客户端;
安装成功后,未root的手机应该要先安装root软件进行root,并且授予权限;
运行被控端软件进入登录窗口,输入帐号密码进行登录;(拥有内测资格或者商业级以上的用户可以试用)
登录成功,点击左上角菜单栏按钮;
点击重置访问密码,设置一个访问密码(控制端远程控制时需进行访问验证);
点击菜单栏中的快捷键,当控制端远程该设备时,可使用以下快捷键;
到这里设置就完成了。
二、控制端操作
下载向日葵安装
安装完成后,输入与被控端相同的贝锐帐号进行登录;
登录成功,显示帐号下的主机列表;
选择手机被控端,进入功能选项中,点击桌面控制;
输入手机被控端之前设置的访问密码,进行远程控制;
连接成功,可以看到被控端手机屏幕界面,就可开始远程控制了。
向日葵助力实现手机远程控制手机
这里非常值得一提的是,向日葵前不久刚刚获得了三星官方的授权,能够免root即获得手机的高级权限。如果你的手机是三星品牌,并且Android版本在7.0以上,那么不需要ROOT即可受远程控制,非常方便。后期随着官方的进一步升级优化,或许也将有更多的手机品牌加入免ROOT受控行列。
另一个非常值得一提的就是,向日葵的远程摄像头功能。这个功能可以远程调用受控手机的摄像头,以此来作为远程监控。
这一过程并不要求手机具备ROOT权限,只要受控的旧手机摄像头功能正常即可。操作方法也非常简单,控制端的手机上安装向日葵远程控制APP,受控手机安装向日葵客户端,两端同时登陆同一个向日葵账号后,在APP功能界面选择远程摄像头即可。该功能非常实用,用于远程监控家中情况或者是远程看护小孩都适合;与此同时,也为老旧的安卓手机提供了一个很好的去处,相当于变废为宝了。当然,大家也无需担心会有不怀好意的人借此功能来侵犯隐私,因为远程查看摄像头是需要受控手机在APP中手动同意之后才能实现的。
向日葵让手机可以远程控制手机更简单,这也是远程技术的突破性发展。目前已研发了向日葵远程控制软件及开机棒、控控等多款硬件,通过软硬结合的方式提供完美的远程控制解决方案,可以满足各种远程工作的需求,大家不妨试一试。
这里说的域名注册商不是域名分销或代理商, 进入正题。在此之前先说下项目中用到的几个知识点。
a什么是域名?
域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。一个域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称,世界上第一个注册的域名是在1985年1月注册的,详细了解请看百度百科。
b如何成为一个域名注册商
申请注册商不是通过ICANN
只有申请根域名才是。通过ICANN认证的企业,需要公司规模、技术实力、服务标准、市场、资金状况等多方面具备较高的标准。从ICANN官方网站了解到,2010年后申请认证的企业,认证标准及难度较以往认证难度增加近一倍。通过ICANN认证后,还要向VeriSign(受ICANN委托的公司,负责.com/.net/.tv域名的注册管理业务)等管理公司申请相关域名的注册接口,再次对认证企业进行审核。非常复杂的程序。
c做为一个域名注册商还需要帮助客户解决域名解析,并提供WHOIS查询.
上面说到通过ICANN认证并向(这里以VeriSign为例)申请注册接口后,VeriSign会提供一些测试环境的账号和资料,只有在测试环境中把诸如域名查询/域名生成/域名续期/域名转移等功能实现,最后能过VeriSign测试验收后才会进入正式账号的下发流程。本着有图才有真像的原则这里上一张图。
VerSign的在线客服一般是周1-5在线,他们的中文客服部在澳大利亚的墨尔本,上午10点后才在线。他们的客服在你要修改敏感信息如IP白名单修改等操作时要通过电话(他只会打你在ICANN上留的电话)进行安全短语确认后才能进行。下面是一些资料.
注册商产品和工具http://www.verisign.com/zh_CN/channel-resources/domain-registry-products/epp-sdks/index.xhtml#chat
在线调试https://epptool-ctld.verisign-grs.com/epptool/
RFC 5730:扩展供应协议文档http://tools.ietf.org/html/rfc5730
因为Verisign只提供JAVA的DEMO,对JAVA不熟,只得用C#来写。下面这些东西不能少:一台带独立IP的服务器,一个Verisign支持的证书,和他们服务器的连接过程请看下图
这里用到了双向认证和非对称加密。下面是他们的服务器支持的证书类型,不在下面列表的证书可能会被他们的服务器拒绝连接。
Verisign supports SSL certificates from the Certificate Authority (CA) providers Symantec, Thawte, GeoTrust, and GoDaddy. All issued certificates must chain up to one of the following supported root CA certificates, grouped by provider:
Symantec
VeriSign Class 2 Public Primary Certification Authority - G3
VeriSign Class 3 Public Primary Certification Authority - G3
VeriSign Class 4 Public Primary Certification Authority - G3
VeriSign Trust Network
VeriSign Universal Root Certification Authority
VeriSign Class 3 Public Primary Certification Authority - G5
Class 1 Public Primary Certification Authority
VeriSign Class 1 Public Primary Certification Authority - G3
Class 3 Public Primary Certification Authority
VeriSign Class 3 Public Primary Certification Authority - G4
Symantec Class 1 Public Primary Certification Authority - G6
Symantec Class 2 Public Primary Certification Authority - G6
Thawte
Thawte Primary Root CA
Thawte Premium Server CA
Thawte Server CA
Thawte Primary Root CA - G2
Thawte Primary Root CA - G3
GeoTrust Primary Certification Authority - G2
GeoTrust
GeoTrust Universal CA
GeoTrust Primary Certification Authority
GeoTrust Universal CA 2
GeoTrust Global CA
GeoTrust Global CA 2
Equifax Secure Certificate Authority
GeoTrust Primary Certification Authority - G3
GoDaddy
Starfield Secure Certification Authority
Go Daddy Root Certificate Authority - G2
Starfield Secure Certification Authority
ValiCert Class 2 Policy Validation Authority
Starfield Class 2 Certification Authority
Starfield Root Certificate Authority - G2
Starfield Services Root Certificate Authority - G2
Go Daddy Class 2 Certification Authority
Starfield Services Root Certificate Authority
当时在验收测试时也花了不少精力,他们的验收文档是英文的,在这里我发下他们的验收流程,希望对以后哪位兄弟有帮助
你需要完成所有27个指令,然后把开始时间,结束时间,还有开始OT&E1第一个指令的时间,和OT&E2最后一个指令的时间给我们。
The start and end times for the test below
The domain name used during the test
The EPP server transaction ID from the operation in Step # 1 below. This is the Epp
Session command for the OT&E1 account.
The EPP server transaction ID from the operation in Step # 27 below. This is the
Epp Quit command for the OT&E2 account.
Extensible Provisioning Protocol
Registrar Acceptance Criteria
1,登录账号1
2,用账号1查询一个可用域名
3,用账号1购买一个域名年限2
4,创建子命名服务器1的使用命名服务器添加新创建的域命令你OT&E1帐户登录--创建一个域名服务器
5创建子新创建的域的名称服务器2使用添加名称空间命令你OT&E1帐户登录--再创建一个域名服务器
6更新域连接子域名服务器到新创建的域使用OT&E1帐户登录域的命令--把这两个域名服务器加到域名上去
7更新域添加域ClientHold客户状态,ClientUpdateProhibited、ClientDeleteProhibited ClientTransferProhibited内部
一个命令用OT&E1帐户登录--给域名添加ClientHold,
ClientUpdateProhibited, ClientDeleteProhibited, and ClientTransferProhibited这几种状态
8域上执行一个信息来验证使用STATUS-FULL更新用OT&E1帐户登录--用info指令查询该域名
9更新域删除域ClientHold客户状态,
ClientUpdateProhibited、ClientDeleteProhibited ClientTransferProhibited
用OT&E1帐户登录--给域名去除ClientHold,
ClientUpdateProhibited, ClientDeleteProhibited, and ClientTransferProhibited这几种状态
10域上执行一个信息来验证使用STATUS-FULL更新用OT&E1帐户登录
11用OT&E1帐户更新域名密码
12更新的孩子命名服务器的IP地址1新创建的域的使用OT&E1帐户登录--修改域名服务器1的IP地址
13用账号1发送HELLO
14用账号1更新域名使用年限+2年
15登录第二个账号
16用账号2查询INFO完全状态
17用账号2发起域名转移请求
18用账号2发起域名转移查询
19用账号1批准域名转移
20用账号1执行POLL-REQUEST
21用账号1执行POLL-ACK
22用账号1发起域名转移请求
23用账号2进行转移查询
24用账号2进行转移拒绝
25用账号2进行域名同步,日期为下个月15号
26退出账号1
27退出账号2
这里讲下我们平时去查一个域名的WHOIS信息是怎么来的?
基于RFC 954提供的WHOIS协议
http://www.rfc-base.org/txt/rfc-954.txt
域名的查询主要是基于RFC 954提供的WHOIS协议。在上述过程中,
我们实际上是访问了InterNIC站点的WHOIS服务器,
该服务器从WHOIS数据库中查询我们所需要的内容。
WHOIS服务器是一个基于"查询/响应"的TCP事务服务器,
它运行在SRI-NIC机器上(26.0.0.73或10.0.0.51),向用户提供internet范围内的目录服务。
本地主机上的用户程序可以通过Internet访问该服务器,其过程主要有下面三步:
(1)在TCP服务端口43(十进制)连接SRI-NIC服务主机;
(2)发送一个命令,以回车和换行(<CRLF>)结尾;
(3)接受相应命令的返回信息,一旦输出结束,服务器将关闭连接。
命令的格式非常简单。可以直接输入域名
用Socket去连接whois提供的服务器。Whois服务的默认端口是43,查询的话就是把域名往这边发送过去,
Whois服务器在收到你的请求后就会返回纯文本的格式
第一步是查询终级WhoIS服务器。
第二步根据上面提供的所在Whois服务器然后再进行,进一步的详细查询 ,
这时把两个结果合到一起才能得到我们想要的详细信息。
顶级域名 whois 服务器列表大全
http://www.liqwei.com/network/protocol/2014/916.shtml
文章下面提供一个简单的whois查询服务器和一个简单的whois查询客户端
最后讲下域名解析,我们采用的是第三方托管的方案,也就是在我们平台上注册的域名我们会把DNS地址指向第三方的地址,然后调用他们的API进行解析服务,为了避免广告嫌疑,这里不公开我们使用的第三方DNS服务商,这里要说的是在接入他们的API过程中遇到的一些坑,对方API只提供PHP样例,其中的参数签名如下:
$apiKey = 'your apiKey'; $apiSecret = 'your apiSecret'; // 参数 $parameters = array( 'apiKey' => $apiKey, 'domain' => 'yourdomain.com', 'timestamp' => time() ); // 按键名排序 ksort($parameters); $hashString = ''; foreach($parameters as $key => $value){ $hashString .= ($hashString ? '&' : '') . $key . '=' . $value; } $parameters['hash'] = md5($hashString . $apiSecret); ?>
然后就遇到了用C#写的MD5加密后的签名和PHP生成的不匹配等问题,这里贴下在网上找的可用方案:
/// <summary> /// 计算参数签名 /// </summary> /// <param name="params">请求参数集,所有参数必须已转换为字符串类型</param> /// <param name="secret">签名密钥</param> /// <returns>签名</returns> public static string getSignature(IDictionary<string, string> parameters, string secret) { // 先将参数以其参数名的字典序升序进行排序 IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters); IEnumerator<KeyValuePair<string, string>> iterator = sortedParams.GetEnumerator(); // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起 StringBuilder basestring = new StringBuilder(); while (iterator.MoveNext()) { string key = iterator.Current.Key; string value = iterator.Current.Value; if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value)) { if (!string.IsNullOrEmpty(basestring.ToString())) { basestring.Append("&"); } basestring.Append(key).Append("=").Append(value); } } basestring.Append(secret); return md5(basestring.ToString(), "utf-8").ToLower(); }
public static string md5(string str, string encodingStr) { try { MD5CryptoServiceProvider mmdd5 = new MD5CryptoServiceProvider(); byte[] hashvalue = mmdd5.ComputeHash(Encoding.GetEncoding(encodingStr).GetBytes(str)); mmdd5.Dispose(); return BitConverter.ToString(hashvalue).Replace("-", "").ToLower(); } catch { return String.Empty; } }
夜深了,就先写这么多了,以后有空再扩展,有兄弟也做域名注册商这一块的可以多交流一下,搞碗汤圆,睡~
civiCRM有时候会报出下面错误,为什么吗?
nitialization Error
Array ( [callback] => Array ( [0] => CRM_Core_Error [1] => simpleHandler ) [code] => -14 [message] => DB Error: no database selected [mode] => 16 [debug_info] => SELECT locale_custom_strings FROM civicrm_domain WHERE id = 1 [nativecode=2027 ** Malformed packet] [type] => DB_Error [user_info] => SELECT locale_custom_strings FROM civicrm_domain WHERE id = 1 [nativecode=2027 ** Malformed packet] [to_string] => [db_error: message="DB Error: no database selected" code=-14 mode=callback callback=CRM_Core_Error::simpleHandler prefix="" info="SELECT locale_custom_strings FROM civicrm_domain WHERE id = 1 [nativecode=2027 ** Malformed packet]"] )