Netsend per PB nutzen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Uber-Pea
Beiträge: 40
Registriert: 28.09.2004 19:22

Netsend per PB nutzen?

Beitrag von Uber-Pea »

Hi
gibt es einen Befehl mit dem ich Netsend über Purebasic aktivieren kann, also sagen kann:


For x = 0 to 99
Befehl IPAdresse


Wodurch im diesem sourcecode oben 100 Nachrichten über Netsend an die IP y gesendet werden.
Also sozusagen ein Provisorischer NetsendBomber^^
Wie würde der von mir gesuchte Befehl heissen?

Greetz, Uber-Pea
Sämtliche Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Öhm, ein Netsend-Bomber ist doch als Dos-Datei ganz easy zu schreiben:

Code: Alles auswählen

:label
net send 192.168.2.2 Hallo
goto label:
Den Text per Editor schreiben und als *.bat abspeichern. Jetzt einfach ausführen und die Nachricht wird in einer Endlosschleife gesendet... Warum da PB benutzen wenn es so noch leichter geht? :D

Aber man kann sicher auch per WinAPI auf den Nachrichtendienst zugreifen, nur da kenn ich die Befehle nicht für.
Benutzeravatar
Uber-Pea
Beiträge: 40
Registriert: 28.09.2004 19:22

Beitrag von Uber-Pea »

weil ich die anzahl bestimmen will^^
asuserdem hab ich keine ahnung von batdateien :P
Sämtliche Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Kristel
Beiträge: 72
Registriert: 30.08.2004 00:17

Beitrag von Kristel »

guckst du hier

Bei diesem Code kann man den Absender frei bestimmen, falls du beim Nachrichtenbomben
nicht erwischt werden willst. Nicht das ich das schon mal getan hätte /:->
Benutzeravatar
Uber-Pea
Beiträge: 40
Registriert: 28.09.2004 19:22

Beitrag von Uber-Pea »

Ich blick in dem Code nix :P
Wo muss ich die IP des Empfängers einsetzen, wo die unter der es geschickt werden soll und wo die Anzahl der Nachrichten(kann ich das einfach in ne For:Next Schleife machen?)?
nicht das ich sowas je machen würde :P
Sämtliche Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Kristel
Beiträge: 72
Registriert: 30.08.2004 00:17

Beitrag von Kristel »

Uber-Pea hat geschrieben:Ich blick in dem Code nix :P
Wo muss ich die IP des Empfängers einsetzen, wo die unter der es geschickt werden soll und wo die Anzahl der Nachrichten(kann ich das einfach in ne For:Next Schleife machen?)?
nicht das ich sowas je machen würde :P
Guck dir mal diesen Codeabschnitt genau an.

Code: Alles auswählen

Sender.s="srings";Source (ME) 

Reciepent.s="Ringsnb2" ;Destination, here my Notebook 
Reciepent.s="*" ;BroadCast to all in network :) 

Message.s="This is a Testmessage ! " ;The Message 
Der Code wird wahrscheinlich in einer For..Next funktionieren,
aber ich konnte es noch nicht in einem Netzwerk ausprobieren.
Ansonsten könntest du dir ja auch einen eigenen Kopf machen,
wie so etwas zu realisieren ist.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Dann guck doch mal genau hin... kann doch nicht so schwer sein aus den paar Zeilen die richtigen zu finden. Rings hat ja auch nicht Variablen genommen wo man nich wissen kann was die sollen, sondern sowas wie "Sender" find ich recht eindeutig.
Wenn du die Message mehrmals senden willst musst du nur WriteFile_() in eine Schleife packen.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Uber-Pea
Beiträge: 40
Registriert: 28.09.2004 19:22

Beitrag von Uber-Pea »

Man ich programmier halt nur selten und bin noch in den Grundlagen, und der Code greift anscheinend auf DOS zu, woher soll ich das können...
Sämtliche Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Dos? Nein nein, das ist nichts mit Dos. Die seltsamen Befehle sind aus der WinAPI, also der Schnittstelle für Windows-Programmentwicklung. (Die Befehle mit "_" am Namensende).

Code: Alles auswählen

; English forum: http://purebasic.myforums.net/viewtopic.php?t=6898&highlight=
; Author: Rings
; Date: 14. July 2003


; Rings:
; english: I do not know if this works under Win89, but its a cool way to send
;          messages over the network.
;          => on older machines, you need to run "winpopup" to see the messages
;             (NT/Win2000/XP have it built in)
; german:  Einfach Nachrichten über das Netzwerk verschicken. Hab leider keine Ahnung
;          ob das hier unter Win89 funktioniert, NT und W2K funktionieren tadellos. 

Sender.s="srings";Source (ME) 

Reciepent.s="Ringsnb2" ;Destination, here my Notebook 
Reciepent.s="*" ;BroadCast to all in network :) 

Message.s="This is a Testmessage ! " ;The Message 

Needed=Len(Sender.s)+Len(Reciepent.s)+Len(Message.s)+4 ;Calculate the needed Memory 
buff = AllocateMemory(Needed);and allocate them 
If buff 
;Set the Data to our buffer 
PokeS(buff,Sender) 
PokeS(buff+Len(Sender.s)+1,Reciepent.s) 
PokeS(buff+Len(Sender.s)+Len(Reciepent)+2,Message.s) 

SlotName.s = "\\" + Reciepent.s + "\mailslot\messngr" 
hFile = CreateFile_(@SlotName.s, #GENERIC_WRITE, #FILE_SHARE_READ, 0, #OPEN_EXISTING, #FILE_ATTRIBUTE_NORMAL, 0) 
byteswritten.l=0 
If hFile 
  Result=WriteFile_(hFile, buff, Needed, @byteswritten, 0) 
  If Result 
   MessageRequester("Info","Message written  to "+SlotName.s+" : "+ Str(byteswritten),0) 
  EndIf      
  CloseHandle_(hFile) 
Else 
  MessageRequester("Info","problem with Slotname:"+SlotName.s,0);Error 
EndIf 
FreeMemory(1);Free Memory 
EndIf  
Du ersetzt einfach das "Message.s="This is a Testmessage ! " ;The Message " mit deiner Nachricht und führst den Code aus. (Bei allocatememory() musst du das 0, wegnehmen, das kommt noch von der alten Schreibweise, der Befehl schreibt sich jetzt anders.)
Und bei Sender.s kannst du deinen Namen oder sonstwas eingeben. Was da eben als Absender stehen soll. Bei Reciepent.s="*" kannst du es entweder so lassen, dann wird es an alle im Netzwerk gesendet, oder du gibst anstelle des "*" den Rechnernamen an, welcher die Nachricht erhalten soll. Und fertig.
Nachrichtendienst muss dazu natürlich aktiviert sein.

Ach, und für eine Mehrfachwiederholung machst du um diese Zeile hier eine For-Schleife:
"Result=WriteFile_(hFile, buff, Needed, @byteswritten, 0)"
Dann kannst du das alles schön in eine Prozedur packen und mit einer Befehlszeile ausführen lassen, beliebige Anzahl an Nachrichten und beliebiger Absender sowie Angeschriebener. ;)
Benutzeravatar
Uber-Pea
Beiträge: 40
Registriert: 28.09.2004 19:22

Beitrag von Uber-Pea »

Mit der WinAPi bin ich auch nicht grade vertraut :P

Naja, der Code geht jetzt

Aber Netsend bockt rum
unter Systemsteuerung Verwaltung Dienste ist es zwar zu finden, es ist jedoch deaktiviert und lässt sich komischerweise nicht aktivieren...
Liegt das am SP2 ?
Ich hasse Windows.......

greetz, Uber-Pea
Sämtliche Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Gesperrt