RouterOS定期更新Oray/no-ip

Standard

利用脚本和定时任务,在RouterOS上可以很简单的完成这项工作,需要注意的是,如果RouterOS不是连接猫的路由器,可能接口IP是不能直接使用的,这里的示例脚本是通过访问ifconfig.co解析的公网ip。

Oray

{
local ipaddr
local server "http://ddns.oray.com"
local domain "域名"
local par "/ph/update\?&hostname=$domain&myip=$ipaddr"
local users "用户名"
local paswd "密码"
/tool fetch url="http://ifconfig.co/ip" dst-path=ip.txt
:set ipaddr [/file get ip.txt contents]
/tool fetch url=($server . $par) mode=http user=$users password=$paswd
}

no-ip

{
local ipaddr
local noipuser "用户名"
local noippass "密码"
local noipdomain "域名"
local url "http://dynupdate.no-ip.com/nic/update?hostname=$noipdomain&myip=$ipaddr"
/tool fetch url="http://ifconfig.co/ip" dst-path=ip2.txt
:set ipaddr [/file get ip2.txt contents]
/tool fetch url=$url mode=http user=$noipuser password=$noippass
}

配置定时执行

在On Event填入执行命令:

/system script run 脚本名称

参考配置

补充

如果直接通过RouterOS拨号获取公网ip,那么可以直接获取接口(注意自己的实际接口名称)的ip地址:

:set ipaddr [/ip address get [/ip address find interface=pppoe-out1] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]

ReactNatvie集成到原生项目填坑备忘录

Standard

1. 目录结构

以下结构为建议结构,不强制,使用该结构可以解决很多困难存在的问题。
Snip20170115_1

2.引用的react native版本

本来这个问题不应该存在,但是在jcenter和本地maven都存在的时候,发现默认引用的是0.2x的版本,导致很多类都对应不上,按照官方的文档集成也是各种报错,此时可以尝试检查引用的com.facebook.react.modules.core.DefaultHardwareBackBtnHandler,看看是否和你npm安装的版本一致。
Snip20170115_2

3.maven配置

按照第一点的目录结构,那么项目的配置build.properties如下:
注意$rootDir/node_modules/react-native/android路径。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Android binaries) is installed from npm
            url "$rootDir/node_modules/react-native/android"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

4.编译版本问题

表现为,运行时报错:
Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.net.ConnectivityManagerCompat.<init>()' is inaccessible to class 'com.facebook.react.modules.netinfo.NetInfoModule'

怀疑是React Native使用的版本原因,请设置app/build.gradle (设置'com.android.support:appcompat-v7:23.0.1')

其他待续(坑较多,慢慢来)