Ports prüfen -> Logikhilfe

Tja ... wie ich bereits an anderer Stelle erwähnte : hier wäre ein ICMP-Ping über eine C-Lib zumindest ein Anfang. Dadurch könnte man sehr schnell herausbekommen welche Systeme überhaupt erreichbar sind. Dann kann man diese immer noch den Port-Scan abfeuern. Aber wie gesagt : ich würde sowas nicht machen und schon gar nicht halbfertig abliefern nur um es dann vielleicht einmal im Monat laufen zu lassen *ich glaube öfter geht auch garnicht xD* nur damit die IT-Abteilung weis welches System welche Ports offen hat. Das ist deren Aufgabe ... nicht deine.
 
Ja, vielleicht kann ich das ja noch in Angriff nehmen, denn so hat das Programm nicht viel Sinn...
Die C Datei hab ich ja von Sheel schon...

Btw; ich habe meine Methode da oben jetzt um die Ausgabe mit farbigen Text modifiiert.
Java:
private static JTextPane ausgabe = new JTextPane();
private static StyledDocument doc = (StyledDocument)ausgabe.getDocument();
	static javax.swing.text.Style windows = doc.addStyle("StyleName", null);
	static javax.swing.text.Style gewählt = doc.addStyle("StyleName", null);
StyleConstants.setBold(windows, true);
		StyleConstants.setFontFamily(windows, "SansSerif");
		StyleConstants.setBackground(windows, Color.red);
		StyleConstants.setFontFamily(windows, "SansSerif");
		StyleConstants.setBackground(windows, Color.green);

Java:
public static void scan ( InetAddress remote, int port) {
	       
	     
	     int winport1 = 135;
	     int winport2= 445;
	     boolean check = false;
	      
	     String hostname = remote.getHostName();
	      
              try {
                 Socket s = new Socket(remote,port);
                 System.out.println("Gegenstelle hat Port Nummer: " + port+ ". IP Adresse:  " + hostname);
                 s.close();
                 try {
					doc.insertString(doc.getLength(), "Die Gegenstelle hat den Gesuchten Port: "+port+"                       IP Adresse: "+hostname +"\n", gewählt);
				} catch (BadLocationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
                 check = true;
             }
                 catch (IOException ex) {
               System.out.println("Gegenstellen hat nicht:  " + port+ ". IP Adresse:  " + hostname);
             
               try {
                     Socket s = new Socket(remote,winport1);
                     System.out.println("Gegenstelle hat Port Nummer: " + winport1+ ". IP Adresse:  " + hostname);
                     s.close();
                     try {
						doc.insertString(doc.getLength(), "Die Gegenstelle hat den Gesuchten Port: "+port+"                       IP Adresse: "+hostname+"\n", windows);
					} catch (BadLocationException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
                     check = true;
                 }
                     catch (IOException ex1) {
                   System.out.println("Gegenstellen hat nicht:  " + winport1+ ". IP Adresse:  " + hostname);
                   
                   try {
                         Socket s = new Socket(remote,winport2);
                         System.out.println("Gegenstelle hat Port Nummer: " + winport2+ ". IP Adresse:  " + hostname);
                         s.close();
                         try {
							doc.insertString(doc.getLength(), "Die Gegenstelle hat den Gesuchten Port: "+port+"                       IP Adresse: "+hostname+"\n", windows);
						} catch (BadLocationException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
                         check = true;
                     }
                         catch (IOException ex2) {
                       System.out.println("Gegenstellen hat nicht:  " + winport2+ ". IP Adresse:  " + hostname);
                      
                       int port2 = 0;
                       while (check == false && port2 <= 65535){
                       
                    	  
                       
                    		   try {
                    			   
                    			   Socket s = new Socket(remote,port2);
                    			   System.out.println("Gegenstelle hat Port Nummer: " + port2 + ".IP Adresse:  " + hostname);
                    			   try {
									doc.insertString(doc.getLength(), "Die Gegenstelle hat den Gesuchten Port: "+port+"                       IP Adresse: "+hostname+"\n", null);
								} catch (BadLocationException e) {
									// TODO Auto-generated catch block
									e.printStackTrace();
								}
                    			   s.close();
		                           check = true;
                    		   }
                             catch (IOException ex3) {
                           System.out.println("Gegenstellen hat nicht:  " + port2+ ". IP Adresse:  " + hostname);
                           
                           check = false;
                         }
                         port2 = port2 + 1;    
                     }
                 }
             }
         }
         }

Leider gibt der immer nur den letzten Eintrag Farbig aus und die anderen sind stinknormal? Wie kann man das ändern?
 
Was mich nur wundert ist warum du gerade auf TCP/135 prüfst ?
Das ist laut IANA kein Port welcher nur von M$ genutzt wird. Viel mehr ist es andersrum das M$ hier einen Dienst verwendet der nunmal laut IANA diesen Port als Standard hat.
Laut IANA sind folgende Ports offiziell M$ zugeschrieben

445/TCP/UDP
568/TCP/UDP
569/TCP/UDP
691/TCP/UDP
1270/TCP/UDP
1433/TCP/UDP
1434/TCP/UDP
1477/TCP/UDP
1478/TCP/UDP
1512/TCP/UDP

Weiter bin ich die Liste nicht durchgegangen ... aber das nur mal so als kleine Stütze woran du SICHER einen M$-Rechner erkennen kannst. 135/TCP/UDP gibt es nämlich auch unter Linux wenn entsprechende Dienste ausgeführt werden.
 
Hiho Spike,

Ja, auf 135 und 445 laufen Windowsdienste. Ich hab mit ihm nochmal geredet. Das mit den 65k Ports durchzählen fällt jetzt komplett weg.
Er will jetzt wissen "ist ip da? wenn nicht -> vergessen, wenn ja -> schauen ob port x da, wenn nein -> windowsports da? -> wenn nein, dann IP anzeigen".
Da der Rechner dann weder Port x noch nen Windowsport hat ist er Kritisch und muss behandelt werden.... das vereinfacht die Sache nun ungemein :)

Bitte schau dir mal das Problem mit dem Markieren im oberen Post an! Würd mich sehr freuen!
 
Ja, auf 135 und 445 laufen Windowsdienste.
Eben NICHT !
TCP/135 ist laut IANA KEIN offizieller Windows-Port. M$ verwendet diesen in-offiziell da auf TCP/135 nunmal ein Dienst läuft der für das RCP nötig ist. Da dies so in der IANA-Liste steht gibt es diesen zwangsläufig auch unter Linux da es unter Linux auch sowas wie RCP gibt.


So .. und um deiner mitlerweile 3 Wochen dauernden Diskusion endlich ein Ende zu setzen *weil es stört mitlerweile einige User hier ... nicht nur mich* :

Nutze eine C-Lib welche Java ein ICMP-Ping zur verfügung stellt ... UND PUNKT !
Es reicht ... das Vorhaben ist 1) viel zu hoch für dich weil du auf dem Stand eines Anfängers bist *nach dem was du mir via PN so geschrieben hast* und 2) will da jemand nur einen Praktikanten der ihm nichts kostet die Zeit totschlagen ...
Sag einfach zum Big Boss dass du diese Aufgabe nicht mehr willst und sich jemand darum kümmern soll der dafür auch bezahlt wird und dessen Job es ist sich um die IT-Infrastruktur in der Firma zu kümmern.
Und wenn sich dafür jemand zu fein ist dann zeig doch diesem Menschen mal wie lange und vor allem dreist du uns jetzt schon mitlerweile mit diesem Thema auf den Geist gehst.

Du hast keinen Plan vom Programmieren ... und in der Schule lernst du eigentlich C ... und auch da bist du grad mal beim Grundgerüst OOP ... vielleicht wäre ein WENIG Eigeninitiative nicht schlecht wenn du wirklich mal Programmieren können willst.

Und noch eins : für einen von uns wäre das ganze nur ein Aufwand von vielleicht ein paar Stunden gewesen das Ding komplett zu implementieren ... weil wir 1) Ahnung davon haben 2) die Initiative dazu haben 3) wissen was mit Java machbar ist und was nicht 4) was es für Alternativen gibt und am wichtigsten 5) wissen wo unsere Grenzen sind.

Ich möchte dich hiermit noch einmal instädig darum beten das du diesen Mist endlich loslässt ... denn es bringt weder uns , noch dir , noch dem der dir das Aufgetragen hat etwas wenn sich damit 20 Leute über 3 Foren hinweg verteilt beschäftigen ...
 
Was, es stört dich? Ich dacht du hilfst gern...
Und wem störts noch? Zwinge doch niemanden meine Threads anzuschaun oder mir zu helfen. Ich war bisher immer sehr Dankbar und finds jetzt etwas unfair das du mich so anfährst... Ich zeig genug eigeninitative, ich hab Stunden Foren und Tutorials durchforstet, das weißt du auch. Obendie ganze Soße kam von mir allein. Hab sogarn nen Java Buch aus eigner Tasche gekauft, welches ich die ganze Zeit wälze..-.-

Als ich herkam konnt ich nicht mal was mit Swing, und jetzt hab ich eig das ganze Gerüst gebastelt! Unter anderem durch die hilfreichen Tipps der User.
Und das du jetzt hier so ein vom Harry lässt nur weil dich Navy mal wiedersprochen hat das es auch mit normalen Mitteln geht, du aber anscheinend verletzt bist das deine JNi Implementierung abgeschlagen wurde, find ich es jetzt unfair das du es auf mich ablädst.

Was deine Aufzählungen von wegen "bei uns wäre das nur ne sache von minuten gewesen" soll weißte selbst nicht.

Das Forum trägt das Motto "User helfen Usern" und nicht "wir sind pro und flamen dich weil du so viel fragst" ....

Bin echt etwas enttäucht grad, hatte eigentlich die Auffassung das du gern hilfst, und wenn nicht, halt nichts schreibst dazu...

Zum Thema
Ob der ****** Port in der Liste steht oder nicht, hier ist es halt so. Da brauch man nicht 10 Seiten drüber zu Diskutieren. Die setzen hier alles selbst auf und Konfigurieren es selbst, wenn er meint das er auf 135 o. 455 was finden will dann solls so sein.-.-
Mein Problem oben war wie man mit der JTextPane etwas markiertes ausgibt und nicht ob der Port in Liste XY steht und "offiziell" zulässsig ist.

Auch wenn ichs jetzt bei dir und den anderen dennen ich auf die Eier gehe verkackt habe, so wollt ichs dennoch mal schreiben, den runterbuttern muss man sich auch als fragender nicht lassen ... oO

Das Programm ist vielleicht sinnlos und so; aber ich habe dadurch Swing, Datenbanken, Internetprogrammierung, String splitten und auf x Hochzählen ect. dazu gelernt. Dazu wurd ich mit vielen Problemen konfrontiert und die konnte ich letztendlich unter anderem durch eure Hilfe lösen. Ich hab mich immer bedankt ect. und habe immer was dazu gelernt.
Ich hab nie gesagt "schreibt mal den Code für mich" ich hab mich immer bemüht mit zu wirken ect!..
 
Nur mal so als KLEINE Anmerkung am Rand um dir vielleicht die Augen zu öffnen

1) Das was von dir verlangt wird ist alleine mit Java NICHT vollständig umsetzbar.
2) Wird von dir mehr verlangt als du kannst und dir zuztrauen ist.
3) Es gibt mitlerweile User *ich enthalte mich hier der Nennung von Namen* die glauben das du damit nicht nur gutes im Auftrag eines Vorgesetzten vorhast.
4) Es ist mir persönlich echt egal was du konntest und was du kannst ... es ist nur Zeitverschwendung, sowohl meiner, deiner als auch der Zeit anderer.
5) Der Aufwand steht in keinem sinnvollen Verhältnis zum Nutzen.
6) Ein wenig Googlen und man hätte eine Handvoll von Programmen finden können *einige davon sogar OpenSource* die genau das machen was derjenige da von dir will.

Mein Schlusswort dir und diesem Thema gegenüber :
Fragen bei konkreten Problemen stellen und auf Hilfe hoffen : JA
Andere darum anbetteln die Arbeit für einen zu erledigen *weil man es selbst nicht kann / will* : NEIN

Wir sind hier nicht dazu da dir Java oder Programmieren beizubringen. Wir sind lediglich eine Community die Usern bei konkreten Problemen mit ihrer Erfahrung hilft. Das was du hier die ganze Zeit veranstaltest wäre in der Job-Börse besser aufgehoben gewesen.
 
zu 3. Was? Versteh die Unterstellung nicht ganz...

6) ja die hat man, keine Frage, doch es ging um den Lerneffekt. Und auch wenns dir egal ist was ich dazu gelernt habe oder nicht (stimmt schon bist ja kein Lehrer), es ist halt dennoch der Fall gewesen.
Und du bringst mir nichts bei, sondern ich hab wie gesagt stehts mitgewirkt, und jeder der hier Fragt hat irgendwo ne wissenslücke, sonst würde er ja nicht fragen -> du hilfst -> sie lernen :)

Im Stick steht KLAR das man alles fragen kann solang man immer mitwirkt, und das habe ich getan (außer vll letztens im C Forum)!

zu 4.) wieso Zeitverschwendung? Weil du den großen Sinn, den fehlenden Speed ect. nicht findest? ...

Und btw; am Rande so zu sagen; was du mitunter veranstalltest, dazu gehört hier nen Zirkus draus zu machen, oder im Tutorialbereich einträge schlecht zu reden, gefällt auch nicht jeden...
Und jetzt ist mal Schluss mit dem Theater, okay?

Edit: und ja, tut mir leid das ich euch Belästigt habe, das kommt nicht mehr vor ...
 
Zuletzt bearbeitet:
Warum .. is halt meine Art ... wenn mir halt etwas wirklich SCHE!ßE ist ... dan sag ich das auch so straight raus.
Was das zu dem Müll mit dem missbrauchtem Tut als Linksammlung für SemperVideo angeht
1) die Jungs haben kein Plan wo von sie reden
2) die Quali ist miserabel
3) ein Tut als Link-Liste zu missbrauchen verstößt gegen die Foren-Regeln

Und JA : es fällt mir wahrlich schwer "DEN SINN" hinter dieser wirklich DUMMEN Aufgabenstellung zu erfassen ...
Warum DU als Praktikant damit beauftragt wurdest lässt mir nur einen Schluss zu : der jenige der dich drum gebeten hat weis genau was für Flaschen da in der IT-Abteilung sitzen.

Daraus lernen : ähm sorry ... aber der Lerneffekt aus diesem Schwachsinn gleicht 0
Wo bitte ist es denn so schwer sich einfach was aus Google zu saugen ? Den Typen der dir das aufgetragen hat versteh ich genau so wenig ...

Aber naja ... wer meint Zeit und Geld verschwenden zu müssen soll das ruhig tun ...

ich tu es mir jedenfalls nicht mehr mit an

*BLOCK*
 
Nur mal so als KLEINE Anmerkung am Rand um dir vielleicht die Augen zu öffnen

1) Das was von dir verlangt wird ist alleine mit Java NICHT vollständig umsetzbar.

Doch ist es. Java bietet alles an, was man dazu braucht.

2) Wird von dir mehr verlangt als du kannst und dir zuztrauen ist.

Vielleicht. Aber auch hier heißt es Geduld und vor allem ist es auch für Anfänger keine unlösbare Aufgabe n-Sockets aufzumachen und Pakete zu senden.

3) Es gibt mitlerweile User *ich enthalte mich hier der Nennung von Namen* die glauben das du damit nicht nur gutes im Auftrag eines Vorgesetzten vorhast.

Jetzt wird es lächerlich. Was genau soll ein Servicemapping genau schlimmes machen? Portscans sind weder böse, noch verboten, noch in irgendeiner Weise "moralisch verurteilbar"

4) Es ist mir persönlich echt egal was du konntest und was du kannst ... es ist nur Zeitverschwendung, sowohl meiner, deiner als auch der Zeit anderer.

Das kannst Du aber auch jedem selber überlassen. Gerade in Hinsicht auf Deinem (und jetzt sorry) offen gezeigtem Halbwissen über Netzwerkkommunikation.

Der Aufwand steht in keinem sinnvollen Verhältnis zum Nutzen.

Es geht hier auch um seine Lernkurve. Da man mit seinen Aufgaben wächst und das hier keine Raketenwissenschaft ist, sehe ich das Verhältnis als für ihn günstig an.

Ein wenig Googlen und man hätte eine Handvoll von Programmen finden können *einige davon sogar OpenSource* die genau das machen was derjenige da von dir will.

Nochmal: Lernkurve

Andere darum anbetteln die Arbeit für einen zu erledigen *weil man es selbst nicht kann / will* : NEIN

d'accord

Und nochmal zum Schluss: Ein Ping ist hier aus mehreren Gründen nicht angebracht. Der beste ist wohl, dass er mindestens überflüssig ist . Ein TCP-Connect liefert (hier) alle Informationen die Ping auch liefern kann und gleichzeitig noch mehr.

Die Portverteilung laut IANA ist eine Empfehlung um die Standardisierung zu ermöglichen. Das heißt aber nicht, dass man einen Service umlegen kann wie man möchte. Darüber hinaus gibt es Dinge wie Portknocking, die auch über die well-known-ports erfolgen können oder andere Spielereien.

Zuletzt: Auch wenn hier recht aktiv im Forum unterwegs bist und größtenteils gute Beiträge lieferst, bitte ich Dich dennoch Dich in Deiner Art zu zügeln. Du bist keine Art BOFH und möchtest das auch hier nicht ausleben. Der Posten ist schon belegt.
 
Zurück