Aufruf einer externen Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aufruf einer externen Funktion

    hallo,
    habe ein riesen problem, eventuell kennt ja aber jemand einen trick.
    bastele grad an einer rufnummern-db. diese liegt zentral auf einem server, und wird ganz normal per browser angesprochen. normale php scripts zum ansehen, ändern und son büschen krams halt.
    jetzt das problem:
    es sind telefone an die lokalen rechner angeschlossen, welche über eine usb schnittstelle verfügen. zu diesen telefonen gibt es eine dailer.exe, welche bsp. von excel aus aufgerufen werden kann, um per parameterübergabe (also dialer.exe `1234567890´) eine angegeben telefonnummer automatisch anzuwählen. mit dem lokalen excel und dem lokalen aufruf der der externen funktion kein problem.
    jetzt muss ich aber aus dem browser die lokal liegende exe ansprechen, was ja eigentlich durch sämtliche sicherheitsrichtlinien verhindert werden soll, meine, ein browser darf nicht in der lage sein ein lokal liegendes programm aufzurufen, und dann auch noch einen parameter an dieses zu übergeben.
    ist diese annahme richtig, dass ich es nicht hinbekomme, ein lokal abgelegtes programm per browser mit einer parameterübergabe aufzurufen ?
    stehe da wirklich im wald, oder gibt es einen trick einen externen funktionsaufruf eben nicht nur auf dem server durchzuführen.
    freue mich über jede anregung ! (fertiges und getestetes php-script wäre natürlich besser )

    mfg amiga

  • #2
    exec
    passthru

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      exec
      passthru

      peter

      ... na ich ging davon aus, ich kann damit nur auf dem server liegende externe funktionen aufrufen, ich brauche doch aber zugriff auf eine clientseitige applikation ???

      mfg amiga

      Kommentar


      • #4
        Hi,

        nein geht nicht. Manchmal kann man unter umständen den IE dazu
        bewegen sowas zu machen. Aber ich würde einen browser der sowas
        macht sicher nicht benutzen.

        greets
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #5
          Schreib einen Server (Dienst), den sich jeder Client installiert und der einen Request an "http://localhost:XX/?nummer=0123456789" in den Shell-Aufruf "dialer.exe $_GET['nummer']" umsetzt.

          Den würde man höchstwahrscheinlich nicht in PHP schreiben, mit $_GET wollte ich nur ausdrücken, wie es läuft.

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Schreib einen Server (Dienst), den sich jeder Client installiert und der einen Request an "http://localhost:XX/?nummer=0123456789" in den Shell-Aufruf "dialer.exe $_GET['nummer']" umsetzt.

            Den würde man höchstwahrscheinlich nicht in PHP schreiben, mit $_GET wollte ich nur ausdrücken, wie es läuft.

            das hört sich ja schonmal so an, als hättest du tatsächlich ne idee. allerdings bin ich ausser in php (und das auch nur so lala) nicht sehr bewandert inm proggen. ich schreibe einen server welcher clientseitig installiert wird ? aha ! hast du es eventuell ein klein wenig genauer ? dachte ja eigentlich, sowas würde sich unter umständen mit so active-x gedöns bewerkstelligen lassen !?

            danke
            mfg amiga

            Kommentar


            • #7
              ...umständen mit so active-x gedöns ...
              Was dann aber ausschliesslich im IE, wenn überhaupt, funzen wird.
              Wenn du willst, dass es mit jedem Client klappt, dann würde ich dir eine Java Lösung nahelegen. Da dies dann aber eine richtige Programmiersprache wäre und du, gemäss eigener Aussage wenig Ahnung von php hast, würde ich davon abraten.
              Auch wird es als Java Applet nicht klappen, weil du so normalerweise keinen Zugriff auf das Dateisystem des Clients hast.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von jahlives
                Was dann aber ausschliesslich im IE, wenn überhaupt, funzen wird.
                da der IE in unserer firma standardbrowser ist, wäre also die bindung an einen festen browser nicht wirklich ein problem. ging echt davon aus, das so zeugs mit 5 standardaufrufen per activeX zu erledigen sei und hier jemand rumschwirrt, der sich damit auskennt. verdummt, dann muss ich wohl versuchen die ACD selbst anzusprechen, ohne den umweg über die usb-schnittstelle zu gehen. schade, hätte gern eine kleine saubere lokale lösung gehabt.......

                trotzdem danke

                mfg amiga

                Kommentar


                • #9
                  Gehen würde sowas. (Egal mit welchem Browser) Vorausgesetzt du kennst die IP Adresse des Users .. In einem Intranet ist das ganze nicht wirklich ein Problem.

                  Ich empfange z.B über eine Software Live daten von mehreren Internetseiten. (Hostname des Aufrufers, Angefragte Seite, Referer etc) .

                  Die Internetseiten senden einen String an meine IP (an einem gewissen port) und die Software zeigt mir dieses dann in einer Tabelle an.

                  Du müsstest also ein Programm haben welches auf einem bestimmten Port läuft. Dieses interpretiert den Request dann so, das die dialer.exe mit Parameter aufgerufen wird.
                  gruss Chris

                  [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                  Kommentar


                  • #10
                    Original geschrieben von hhcm
                    Gehen würde sowas. (Egal mit welchem Browser) Vorausgesetzt du kennst die IP Adresse des Users .. In einem Intranet ist das ganze nicht wirklich ein Problem.

                    Ich empfange z.B über eine Software Live daten von mehreren Internetseiten. (Hostname des Aufrufers, Angefragte Seite, Referer etc) .

                    Die Internetseiten senden einen String an meine IP (an einem gewissen port) und die Software zeigt mir dieses dann in einer Tabelle an.

                    Du müsstest also ein Programm haben welches auf einem bestimmten Port läuft. Dieses interpretiert den Request dann so, das die dialer.exe mit Parameter aufgerufen wird.
                    ....jup, so könnte das bei mir auch funktionieren, denn die ip des abrufenden bekomme ich ja in der sessionid mit, dann noch das entsprechende clickargument, und per externem aufruf zurück an die ip des clients senden, welcher dort nen dienst laufen hat. tja das prinzip ist klar, aber da ich weder nen schimmer habe wie ich unter linux nen string aufs netzwerk lege, noch wie ich einen windowsdienst schreibe, welcher auf nem port lauscht, sieht das ganze zum tode verurteilt aus. hast du eventuell nen paar beispiel-quellen, an denen ich mir mal angucken kann, wie man so netzwerkzugriffe proggt ?! der funktionsumfang scheint ja wirklich nur minimal zu sein, allerdings fehlen mir so ein wenig die grundkenntnisse in netzwerkprogrammierung

                    danke
                    mfg amiga

                    Kommentar


                    • #11
                      Also für die PHP Seite kannst du dir mal curl oder fsockopen ansehen.

                      Für die Windows geschichte wird nicht wirklich ein Dienst benötigt sondern lediglich ein kleines Programm. Wenn du aber schon sagst das du da keinerlei Erfahrung hast ... Da wirst du wohl jemanden mit beauftragen müssen ..
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        ... na das ist doch schonmal ein anfang, dachte eigentlich, ich müsste das senden an den abfragenden cleint auch schon per externer funktion machen, aber wie es aussieht ist das ja noch in php möglich. na eventuell find ich ja jemanden, der mir zeigen kann, wie ich den dienst am einfachsten realisieren kann. kenne ein paar leute, die da vielleicht nen schein haben. danke für die anregung, hast mir wirklich geholfen !

                        thx
                        amiga

                        Kommentar


                        • #13
                          Hi,

                          lass blos die finger davon bis du etwas mehr darüber weisst.
                          Ich würde mit den informationen die ich aus diesem thread habe deinen
                          dienst nicht installieren. Das ding nimmt ungeprüft anweisungen entgegen
                          und führt ein program aus. Dir ist klar dass du das absichern solltest ?

                          Und da gibt es mehr zu beachten als simple checken ob der request denn
                          auch vom server kommt. Im schlimmsten fall öffnest du jeden host in deinem
                          netz.

                          greets
                          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                          Kommentar


                          • #14
                            ... verstehe jetzt nicht wirklich dein problem. das abgefragt wird, ob die rufnummer welche auf dem client angerufen werden soll, auch vom server, auf welchem die datenbank liegt, kommt, ist klar. aber der dienst führt ja nicht irgendwelche anweisungen, welche von draussen kommen aus, sondern ist dann festverdrahtet auf die dailer.exe und übergibt dort den , vonmiraus auf länge und integrität geprüften, string an selbige. die benutzt dann die usb um das telefon in gang zu werfen.
                            mir sind dein bedenken nicht zwingend geläufig .....
                            ob du etwas mehr ins detail gehen könntest ?

                            danke
                            amiga

                            Kommentar


                            • #15
                              Hi,

                              das problem ist, dass selbst solcherlei "festvedrahtung" richtig gemacht
                              werden muss. Die möglichkeiten sind vielfälltig. Stichwort: bufferoverflows
                              und formatstringschwachstellen.


                              greets
                              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                              Kommentar

                              Lädt...
                              X