Hey Leute,
heute mal etwas in einer ganz anderen Sprache.
Worum geht es:
Mir wurde die Aufgabe gestellt, ein kleines Tool zu basteln, welches in verschiedenen Unternehmensnetzen mit unterschiedlichen Proxy und Firewall und Gateway Konfigurationen diese ermitteln und im besten Fall eine funktionierende Verbindung zum zentralen Server herstellen. Schlägt dieses fehl soll das Tool eine möglichst genaue Fehlermeldung ausgeben, warum die Verbindung fehlgeschlagen ist.
Dabei besteht wohl bie den aktuellen Codes das Problem: Die Fehlermeldungen die fliegen sind wohl schlicht nicht genau genug um den Fehler einfach und schnell zu finden, was dann aktuell wohl in längeren Support-Sitzungen und -Gesprächen gipfelt wo dann mit der IT versucht wird mühevoll den Fehler zu finden und zu beheben.
Haken an der Sache: Es wird bei dem von dem ich diese Aufgabe erhalten habe ausschließlich mit VB.NET gearbeitet - und das WCF-Framework eingesetzt - und ich hab von beiden absolut keinen Plan.
Ich hab mir also mal n vb.net crash course gegeben um erstmal ein Gefühl für die Sprache zu bekommen - und muss sagen: auch wenn vieles ähnlich ist tut mir der Kopf von einigen Umständlichkeiten ganz schön weh.
Zusätzlich: Ich hab nur ein knappes Zeitfenster bis zweite Mai-Woche um mich da überall reinzuarbeiten und zumindest erstmal erste Lösungsansätze zu präsentieren.
Da ich aber den Tag über auch noch 9h arbeiten gehe bleibt Abends nicht viel Zeit mich darum zu kümmern (vor allem weil heute Morgen mit dem Ausfall des PCs meines Vaters noch wieder was dazu gekommen ist was mich zusätzlich ablenkt).
Ich habe mir daher erstmal vorgenommen anstatt direkt mit der Umsetzung in Code zu beginnen erstmal mögliche Probleme und deren mögliche Lösungen anzugehen. Das “in Code gießen” sollte am Ende noch das Einfachste werden.
Da ich es bisher nicht gefunden habe, einfach mal die direkten Fragen, die ich untersuchen möchte:
-DNS: eigentlich rudimentär - aber möglicherweise wichtig: Gibt es Möglichkeiten (ggf. direkt über die Win32-API) die aktuellen DNS-Einstellungen abzufragen? (In Java geht das ja z.B. nicht, oder wenn nur mit sun.* Klassen.) Zusätzlich: kleines DNS-Framework damit nicht so viel selbst gecoded werden muss.
-Proxy: gleiches für die System-Proxy-Einstellungen
-low-level: Mir ist klar dass es in Enterprise-Netzen auch gerne mal bis Level 2 runtergeht auf der dann “Sicherheitsmaßnahmen” umgesetzt werden - was dann in höheren Schichten (so 4 und aufwärts) nur noch schwer nachvollziehbar ist. Da auch die zugrunde liegende WinSock-API nicht viel an Fehlercodes liefert wird es wohl wie in Java soweit gehen und über C irgendwas low-level mäßig implementieren zu müssen um da Fehler zu finden. - Gibts da was?
-Rechte: Gut, unter Java eher weniger das Problem, aber ich denke in der Welt von M$ schon eher wichtig: Rechte-Management. Ich kenn mich zwar nicht aus - aber da ich es auch von meiner Arbeit kenne: Je höher die Position desto mehr Rechte, gerade was den Internetzugriff angeht. Es bringt also wenig wenn mein Tool als Dienst mit höheren Rechten läuft und daher vielleicht eine Verbindung aufbauen kann - wenn die eigentliche Anwendung nur mit Nutzerrechten läuft und dann nicht raus kommt.
Ich weiß - ist viel für wenig Zeit - aber zum Glück auch erstmal nur ein recht spezielles Thema was zwar Fach-Kenntnis, dafür aber allgemein recht wenig Wissen erfordert. Mir fehlt halt schlicht die Zeit mich damit so tief zu befassen wie es vielleicht nötig ist, und auch einfach die Möglichkeiten bestimmte Umgebungen zu simulieren / mit meinen Mitteln nachzustellen.
Da es auch unteranderem für mich um eine mögliche Ausbildung oder gar Anstellung geht möchte ich da natürlich versuchen das best-mögliche rauszuholen, dafür ist aber leider das Zeitfenster sehr knapp vorgegeben (hat sich alles eher Zufällig zum Oster-Wochenende über Bekannte ergeben).
Würde mich über Rückmeldungen freuen. Vielleicht hat ja jemand mit sowas Erfahrungen oder sogar “auf der anderen Seite” und kennt sich mit dem Kram aus der mir quasi im Weg steht (ich will ja nichts unbefugt “brechen” - es soll nur möglichst genau die Fehlerursache eingegrenzt werden).
Sen