以下代码不完整
export async function main(ns) {
//一级服务器列表
var serv = ["n00dles","foodnstuff","sigma-cosmetics","joesguns","hong-fang-tea","harakiri-sushi","iron-gym"];
//不断扫描下一级服务器,并添加到列表中
var temp = ns.scan(serv[i]);
// j取1,因为temp[0]是上一级服务器
for(var j=1;j<temp.length;++j){
serv.push(temp[j]);
}
}
for(var i=0;i<serv.length;++i){
switch(ns.getServerNumPortsRequired(serv[i])){
case 0: {
await ns.nuke(serv[i]);
break;
}
case 1: {
if(ns.fileExists("BruteSSH.exe")){
await ns.brutessh(serv[i]);
await ns.nuke(serv[i]);
if(ns.getServerMaxRam(serv[i]))
{
await ns.scp("hack.js",serv[i],"home");
await ns.exec("hack.js", serv[i], ns.getServerMaxRam(serv[i])*3/8);
}
}
break;
}
case 2: {
if(ns.fileExists("FTPCrack.exe")){
await ns.ftpcrack(serv[i]);
await ns.brutessh(serv[i]);
await ns.nuke(serv[i]);
}
break;
}
case 3: {
if(ns.fileExists("relaySMTP.exe")){
await ns.relaysmtp(serv[i]);
await ns.ftpcrack(serv[i]);
await ns.brutessh(serv[i]);
await ns.nuke(serv[i]);
}
break;
}
case 4: {
if(ns.fileExists("HTTPWorm.exe")){
await ns.httpworm(serv[i]);
await ns.relaysmtp(serv[i]);
await ns.ftpcrack(serv[i]);
await ns.brutessh(serv[i]);
await ns.nuke(serv[i]);
}
break;
}
case 5: {
if(ns.fileExists("SQLInject.exe")){
await ns.sqlinject(serv[i]);
await ns.httpworm(serv[i]);
await ns.relaysmtp(serv[i]);
await ns.ftpcrack(serv[i]);
await ns.brutessh(serv[i]);
await ns.nuke(serv[i]);
}
break;
}
default: break;
}
export async function main(ns) {
// 定义需要购买的云服务器的RAM大小,建议钱攒够10m后购买8G的
var ram = 1024;
var serv = ns.getPurchasedServers();
var i = serv.length;
// 如果购买过一些云服务器,则在这些云服务器上运行针对某一服务器的hack脚本
if(i>0){
for(var j=0;j<i;++j){
await ns.scp("buyrun.js",serv[j],"home");
await ns.exec("buyrun.js",serv[j],ram*3/8);
}
}
// 判断是否还有云服务器购买份额
while(i<ns.getPurchasedServerLimit()){
// 判断当前home主机上的钱是否足够购买一台云服务器
if(ns.getServerMoneyAvailable("home")>ns.getPurchasedServerCost(ram)){
// 云服务器的命名设为Serv-x
var hn = ns.purchaseServer("Serv-"+i, ram);
await ns.scp("buyrun.js",hn,"home");
await ns.exec("buyrun.js",hn,ram*3/8);
++i;
}
await ns.sleep(1000);
}
}
export async function main(ns) {
var serv = ns.getPurchasedServers();
for(var i=0;i<serv.length;i++){
ns.deleteServer(serv[i]);
}
}
export async function main(ns) {
// 需要寻找的服务器
var target = ["run4theh111z"];//CSEC\avmnite-02h\I.I.I.I\run4theh111z\fulcrumassets
var i = 0;
// indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置
// 当"home"出现在数组最后一位,则得出了寻找路径
// scan()函数扫描出的值的第一个为上一级服务器名
while(target.indexOf("home")==-1){
var temp = ns.scan(target[i++]);
target.push(temp[0]);
}
// 输出的路径为倒序
ns.tprint(target);
}