It's not hard:

var/list/nearby = orange(7,get_turf(src))
for(var/obj/effect/blob/node/blob in nearby)
if(get_dist(blob,src) <= 5)
blobstatus |= BLOB_NODE_NEARBY

If this comment was supposed to go to Yota's suggestion:

if(locate(/obj/effect/blob/factory) in nearby) // only returns one object, so you cannot loop through them and make sure they are within 4/5 range