/dloucflare

To run at a server which has a dynamic IP and cloudflare service. It can dynamic modify your DNS record by your realtime IP address.

Primary LanguageJavaScript

DLOUCFLARE (RECONNSTRUCTION)

To run at a server which has a dynamic IP and cloudflare service. It can dynamic modify your DNS record by your realtime IP address.

WHAT'S THIS

It's a NODE.JS based project (or even a tool).

Your server is running under a dynamic IP? Want something to modify DNS record to the real-time IP address automatically? Maybe DloucFlare can help you. In fact, Zanarberry is using it.

But first of all, you should have a CloudFlare account. We use the first and last letter of Dynamic to put on Cloud, so we get DloucFlare.

PRE-WORK

Go http://www.cloudflare.com and register for an account. But I think you'd better to know the detail information or features of CloudFlare before you use it.

Add your own domain on CloudFlare and do as it said.

After you set up your own domain settings on CloudFlare, you can use DloucFlare now.

Example

Go to your own NODE.JS project directory and get this package from npm:

$ cd /your/path
$ npm install dlouc-flare

And then create your app.js. The code is very simple:

var dloucflare = require("dlouc-flare");
var df = dloucflare.create("your@register.email", "API KEY", "doma.in");
df.dynamicDomains([ "sub1", "sub2", "..." ], CHECK_ROUND_TIME);

Just start up this app.js. If you want it run at the backend, you can use nohup command:

$ nohup node app.js > foo.log 2>&1 &

CUSTOM IP GETTER

You can use your own custom IP getter function. Just set it:

df.setIpGetter(function(callback) {
    callback(undefined, "127.0.0.1");
});

You should return IP in the second parameter of callback.

And you should query IP address by your own logic.

We also prepared some default IP Getter function for you. You may use it like:

var IPGETTER = dloucflare.IPGETTER;
df.setIpGetter(IPGETTER.TELIZE);
df.setIpGetter(IPGETTER.ALIYUN);
df.setIpGetter(IPGETTER.QQ);

We list the prepared getter below:

  • TELIZE
  • ALIYUN
  • SOHU
  • IP138
  • QQ
  • IP5
  • WIN7SKY
  • SZBENDIBAO
  • WHATISMYIP

CONTACT

If you want contribute to this project, you can fork it!

And if you have some question, you can post it to ISSUES or contact me:

This project is working for my own ZSG. Because it's China Mobile Broadband, so maybe China Telecom Broadband can't access to it.

OLD VERSION

The v0.0.2 version is here.

CONTRIBUTION

You're welcome to make pull request!