Collect all the Sonar Reverse DNS records for the provided zone and add them to NetworkX graph
(graph, ipzone, groups, mongo_connector)
| 197 | |
| 198 | |
| 199 | def find_srdns_by_zone(graph, ipzone, groups, mongo_connector): |
| 200 | """ |
| 201 | Collect all the Sonar Reverse DNS records for the provided zone and add them to NetworkX graph |
| 202 | """ |
| 203 | temp = ipzone.split(".") |
| 204 | regex_str = "^" + temp[0] + "\\." + temp[1] + "\\." + temp[2] + ".*" |
| 205 | regx = re.compile(regex_str) |
| 206 | |
| 207 | srdns_collection = mongo_connector.get_sonar_reverse_dns_connection() |
| 208 | rdns_results = srdns_collection.find({"ip": {"$regex": regx}}) |
| 209 | |
| 210 | for result in rdns_results: |
| 211 | zone = result["zone"] |
| 212 | zone_g_index = add_to_list(zone, groups) |
| 213 | |
| 214 | if result["fqdn"] != zone and zone != "": |
| 215 | graph.add_node( |
| 216 | zone, |
| 217 | data_type="tld", |
| 218 | type=zone_g_index, |
| 219 | depends=[result["fqdn"].replace("." + zone, "")], |
| 220 | dependedOnBy=[], |
| 221 | docs="", |
| 222 | ) |
| 223 | graph.add_node( |
| 224 | result["fqdn"].replace("." + zone, ""), |
| 225 | data_type="domain", |
| 226 | type=zone_g_index, |
| 227 | depends=[result["ip"]], |
| 228 | dependedOnBy=[zone], |
| 229 | docs="", |
| 230 | ) |
| 231 | elif zone == "": |
| 232 | graph.add_node( |
| 233 | result["fqdn"], |
| 234 | data_type="domain", |
| 235 | type=zone_g_index, |
| 236 | depends=[result["ip"]], |
| 237 | dependedOnBy=[], |
| 238 | docs="", |
| 239 | ) |
| 240 | else: |
| 241 | graph.add_node( |
| 242 | result["fqdn"], |
| 243 | data_type="tld", |
| 244 | type=zone_g_index, |
| 245 | depends=[result["ip"]], |
| 246 | dependedOnBy=[], |
| 247 | docs="", |
| 248 | ) |
| 249 | |
| 250 | graph.add_node( |
| 251 | result["ip"], |
| 252 | data_type="ip", |
| 253 | type=0, |
| 254 | depends=[ipzone], |
| 255 | dependedOnBy=[result["fqdn"].replace("." + zone, "")], |
| 256 | docs="", |
no test coverage detected