36 lines
793 B
D
36 lines
793 B
D
import std.stdio;
|
|
import std.socket;
|
|
import std.date;
|
|
import std.string;
|
|
import std.md5;
|
|
|
|
|
|
int main(char[][] args) {
|
|
if (args.length != 4) {
|
|
printf("illegal arguments\n");
|
|
return 1;
|
|
}
|
|
|
|
char[] DYN_ID = args[1];
|
|
char[] SHARED_SECRET = args[2];
|
|
|
|
char[] SERVER_IP = args[3];
|
|
const int SERVER_PORT = 8053;
|
|
|
|
|
|
long time = getUTCtime() / TicksPerSecond;
|
|
char[] data = format("%s %s %d", DYN_ID, SHARED_SECRET, time);
|
|
|
|
ubyte[16] checksum;
|
|
sum(checksum, data);
|
|
|
|
char[] dataToSend = format("%s %d %s", DYN_ID, time, tolower(digestToString(checksum)));
|
|
|
|
Socket sock = new UdpSocket(AddressFamily.INET);
|
|
InternetAddress serverAddress = new InternetAddress(SERVER_IP, SERVER_PORT);
|
|
sock.sendTo(dataToSend, serverAddress);
|
|
sock.close();
|
|
|
|
return 0;
|
|
}
|