Useful Functions
From Observer GigaFlow Support | VIAVI Solutions Inc.
Revision as of 09:01, 9 June 2017 by Kevin Wilkie (Talk | contribs)
Sleep
function sleep(delay) { var start = new Date().getTime(); while (new Date().getTime() < start + delay); }
Adding Attributes, automaticaly creating the category if it doesn't exists
actions.addIPAttribute("172.21.40.14","State","New York"); //Add "New York" Attribute to "State" category for this ip actions.addMACAttribute("a4:ba:db:ff:18:bc","State","Washington"); //Add "Washington" Attribute to "State" category for this mac actions.addMACAttribute("a4:ba:db:ff:18:bc","City","Colorado");
Base64 encoding and decoding
var utils = Java.type('ros.CROSUtils'); var user='Kevin' var password = '!£$%^&*()1234kevin' var encodeduser=utils.base64EncodeString(user); var encodedpass=utils.base64EncodeString(password); var decodeduser=utils.base64DecodeString(encodeduser); var decodedpass=utils.base64DecodeString(encodedpass); log.warn("user:"+user+" password:"+password+" encodeduser:"+encodeduser+" encodedpass:"+encodedpass) log.warn("user:"+user+" password:"+password+" decodeduser:"+decodeduser+" decodedpass:"+decodedpass) //Output= user:Kevin password:!£$%^&*()1234kevin encodeduser:S2V2aW4= encodedpass:IcKjJCVeJiooKTEyMzRrZXZpbg== //Output= user:Kevin password:!£$%^&*()1234kevin decodeduser:Kevin decodedpass:!£$%^&*()1234kevin
Http Post with attributes
var utils = Java.type('ros.CROSUtils'); var thisurl = 'https://jsonplaceholder.typicode.com/posts/1'; var user='Kevin' var password = '!£$%^&*()1234kevin' var encodeduser=utils.base64EncodeString(user); var encodedpass=utils.base64EncodeString(password); var decodeduser=utils.base64DecodeString(encodeduser); var decodedpass=utils.base64DecodeString(encodedpass); log.warn("user:"+user+" password:"+password+" encodeduser:"+encodeduser+" encodedpass:"+encodedpass) log.warn("user:"+user+" password:"+password+" decodeduser:"+decodeduser+" decodedpass:"+decodedpass) //log.warn(utils.HTTPSClientGet(thisurl)) log.warn(utils.HTTPSClientPost("http://jsonplaceholder.typicode.com/posts",[["title","fook"],["body","bark"],["userId","1"]]));
Live DNS lookups
var InetSocketAddress = Java.type('java.net.InetSocketAddress'); var hostname = new InetSocketAddress("172.21.40.14",0).getAddress().getCanonicalHostName(); log.warn(hostname);
Cached DNS lookups
var hostname = actions.dnsCache.resolve("172.21.40.14").name; log.warn(hostname);
See if an ip address is within a range using isIPInRange function
var utils = Java.type('ros.CROSUtils'); log.warn("new arp "+ data.get("display")+" "+data.get("ifdisplay")+" "+data.get("ip")+" "+data.get("macAddress")+" "+data.get("seenIPAddress")+ " "+utils.isIPInRange(data.get("seenIPAddress"),"172.21.40.0","172.21.40.254"));
Sending Syslog Messages
actions.ros.getSyslogSender().send("test");
Searching for IP addresses seen
var utils = Java.type('ros.CROSUtils'); log.warn(actions.allIPs.size()) for (var i=0;i<255;i++){ checkAddress("172.21.40."+i); } function checkAddress(address){
if (actions.allIPs.containsKey(utils.inet_atob(address))){ log.warn("seen "+address+" "+actions.allIPs.get(utils.inet_atob(address))) }else{ log.warn("didnt see "+address); }
}