Kontroller ei proxyliste med avgrensa parallellitet
Avgrens parallelle proxykontrollar og registrer kva kvar kontroll faktisk slo fast for målområdet.
var options = new ParallelOptions
{
MaxDegreeOfParallelism = 8,
CancellationToken = cancellationToken
};
await Parallel.ForEachAsync(endpoints, options,
async (endpoint, token) =>
{
var result = await ProbeAsync(endpoint, target, token);
observations.Add(result);
});Bruk ein avgrensa arbeidarpool i staden for å starte éi oppgåve per endepunkt. For kontrollar mot tillatne offentlege mål leverer den gratis proxylista kandidatrader; hald på protokollen til kvar oppføring når sonden blir bygd. Dette .NET-planleggingsutdraget føreset ein proxybevisst ProbeAsync og ein trådtrygg observations-samlar. Åtte er ei illustrativ grense, ikkje eit målt optimum. Sonden treng framleis grenser per forsøk og avbrot av heile jobben.
Ta vare på kvart fullførte resultat saman med inndataa, sjølv når fullføringsrækkjefølgja er annleis. Registrer protokoll, endepunkt, mål, metode, medgått tid og utfall. Tilkoplingsfeil, avvist proxy-pålogging, avvist CONNECT og eit motteke svar frå nettstaden er ulike observasjonar.
Ein open TCP-port beviser ikkje proxy-forhandling. Å hente proxyadressa som ein nettstad er òg noko anna enn å bruke henne til å be om målet.
Vel mål og metode etter den påkravde eigenskapen. HEAD kan spare kroppstrafikk, men beviser ikkje at GET returnerer nyttig innhald; ein nettstad kan avvise det eine og tillate det andre. HTTPS legg til CONNECT og destinasjons-TLS som manglar i rein HTTP. Ei utgangsadresse er ein annan observasjon på destinasjonssida, skild frå den konfigurerte inngangen.
Avgrensa arbeid hindrar kontrolløren i å bruke opp eigne sockets, minne eller planleggjar før han kan vurdere ruta. Eit trinnvis resultat blir verande nyttig for utvalspolitikken utan å late som eitt vellukka mål gjer eit endepunkt universelt godt.