php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2004, 20:02  
Gast
 
Beiträge: n/a
Standard [Erledigt] kompilierte C datei über Apache aufrufen!

Hallo,

ich habe folgendes Problem und weiß absolut nicht wie ich es lösen soll.
Und zwar habe ich eine Relaissteuerung die ich über ein C Programm an und ausschalten kann.

Nun will ich auf meine Intranet Seite, die Seite liegt auf dem gleichen Server wie die Relaissteuerung, einen Link einbinden mit dem ich die Relaissteuerung an und vielleicht auch wieder ausschalten kann.

Ich bin für jede Programmiersprache zu haben, jedoch kann ich selber nur c, c++ ein bisschen und natürlich php.

Also mit dem Link sollte in einer Shell oder irgendwie z.b der Befehl "shutdown -h now" ausgeführt werden.
Mein Programm ist genau gleich aufgebaut!

Ich hoffe mir kann irgendjemand helfen.
Danke im Vorraus,
Mfg Steffen Mauch
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.08.2004, 21:36  
Gast
 
Beiträge: n/a
Standard

einfach so beim Aufruf eines bestimmten urls oder soll da noch mehr hinterstecken?
  Mit Zitat antworten
Alt 25.08.2004, 21:49  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.039
Sclot befindet sich auf einem aufstrebenden Ast
Standard

is egal

wenn du eine seite aufrugst oder auf einen link klickst, kannst du dann auch :

<? system("shutdown -h now"); ?>

machen.

genauso wie ich mir den hdd platz anzeigen lasse:

<? system("df -h"); ?>



mal was anderes... könnte ich das c teil haben und ne erklärung dazu?
ich such sowas auch schon
Sclot ist offline   Mit Zitat antworten
Alt 25.08.2004, 23:03  
Gast
 
Beiträge: n/a
Standard

Also hier ist mal der Code!
Ich habe es noch nicht ausprobiert!
Jedoch sieht er ganz passabel aus!

Öffnet die Funktion system()
indirekt eine Shell oder wie schafft die das??
kann ich da alles machen was ich in der Shell auch machen kann mit Parameter und so weiter??
Und funktioniert die auch auf Windows??

//This program is free software under the terms of the GNU GPLv2
//copyleft Christoph Schleifenbaum

#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>

#define LPT1 0x378

#define COM1 0x3f8
#define COM2 0x2f8

//sets a pin on the serial port
int set_serial_pin(int baseport, int pin, int value){
int result = ioperm(baseport, 7, 1);
if(result) return -1;
if(pin==3){
if(value)outb( inb(baseport+3) | 0x40, baseport+3);
else outb( inb(baseport+3) & 0xbf, baseport+3);
}
else if(pin==4){
if(value)outb( inb(baseport+4) | 0x01, baseport+4);
else outb( inb(baseport+4) & 0xfe, baseport+4);
}
else if(pin==7){
if(value)outb( inb(baseport+4) | 0x02, baseport+4);
else outb( inb(baseport+4) & 0xfd, baseport+4);
}
else{
ioperm(baseport, 7, 0);
return -1;
}
ioperm(baseport, 7, 0);
}

//reads a pin from the serial port
int get_serial_pin(int baseport, int pin){
int result = ioperm(baseport, 7, 1);
if(result) return -1;

if(pin==1) result = inb(baseport+6) & 0x80;
else if(pin==3) result = inb(baseport+3) & 0x40;
else if(pin==4) result = inb(baseport+4) & 0x01;
else if(pin==6) result = inb(baseport+6) & 0x20;
else if(pin==7) result = inb(baseport+4) & 0x02;
else if(pin== result = inb(baseport+6) & 0x10;
else if(pin==9) result = inb(baseport+6) & 0x40;
else result = -1;

if(result>0) result/=result;

ioperm(baseport, 7, 0);
return result;
}

//sets a pin on the parallel port
int set_parallel_pin(int baseport, int pin, int value){
int result = ioperm(baseport, 3, 1);
if(result) return -1;

if(pin==1){
if(value)outb( inb(baseport+2) | 0x01, baseport+2);
else outb( inb(baseport+2) & 0xfe, baseport+2);
}
else if(pin>=2 && pin <=9){
if(value)outb( inb(baseport) | pow2(pin-2), baseport);
else outb( inb(baseport) & 0xff-pow2(pin-2), baseport);
}
else if(pin==14){
if(value)outb( inb(baseport+2) | 0x02, baseport+2);
else outb( inb(baseport+2) & 0xfd, baseport+2);
}
else if(pin==16){
if(value)outb( inb(baseport+2) | 0x04, baseport+2);
else outb( inb(baseport+2) & 0xfb, baseport+2);
}
else if(pin==17){
if(value)outb( inb(baseport+2) | 0x08, baseport+2);
else outb( inb(baseport+2) & 0xf7, baseport+2);
}
else if(pin==11){
if(value)outb( inb(baseport+1) | 0x80, baseport+1);
else outb( inb(baseport+1) & 0x7f, baseport+1);
}
else{
ioperm(baseport, 3, 0);
return -1;
}
ioperm(baseport, 3, 0);
}

//reads a pin from the parallel port
int get_parallel_pin(int baseport, int pin){
int result = ioperm(baseport, 3, 1);
if(result) return -1;

if(pin==1) result = inb(baseport+2) & 0x01;
else if(pin>=2 && pin <=9) result = inb(baseport) & pow2(pin-2);
else if(pin==10) result = inb(baseport+1) & 0x40;
else if(pin==11) result = inb(baseport+1) & 0x80;
else if(pin==12) result = inb(baseport+1) & 0x20;
else if(pin==13) result = inb(baseport+1) & 0x10;
else if(pin==14) result = inb(baseport+2) & 0x02;
else if(pin==15) result = inb(baseport+1) & 0x08;
else if(pin==16) result = inb(baseport+2) & 0x04;
else if(pin==17) result = inb(baseport+2) & 0x08;
else result = -1;

if(result>0) result/=result;

ioperm(baseport, 3, 0);
return result;
}

int pow2(int n){
if(n<1) return 1;
return pow2(n-1)*2;
}

int main(int argc, char **argv)
{
int pin;
int value;

if(argc!=4 && argc!=3){
printf("Usage: %s <port> <pin> [<value>]\n", argv[0]);
return -1;
}

if(ioperm(LPT1, 3, 1)){
printf("Must be root...\n");
return -1;
}
ioperm(LPT1, 3, 0);

pin = atoi(argv[2]);
if(argc==4) value = atoi(argv[3]);

if(!strcmp(argv[1], "LPT1")){
if(argc==4)
set_parallel_pin(LPT1, pin, value);
else
return get_parallel_pin(LPT1, pin);
}


if(!strcmp(argv[1], "COM1")){
if(argc==4)
set_serial_pin(COM1, pin, value);
else
return get_serial_pin(COM1, pin);
}

if(!strcmp(argv[1], "COM2")){
if(argc==4)
set_serial_pin(COM2, pin, value);
else
return get_serial_pin(COM2, pin);
}

return(-1);
}
  Mit Zitat antworten
Alt 25.08.2004, 23:05  
Gast
 
Beiträge: n/a
Standard

Der Smilie soll natürlich 8) heißen fehler von mir!
  Mit Zitat antworten
Alt 25.08.2004, 23:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.039
Sclot befindet sich auf einem aufstrebenden Ast
Standard

jo, system() ruft glaub ich eine shell auf und startet das dann, geht auf jedenfall auch mit parametern (z.b. nmap -p 1-100 host.tld)

ob das unter windows geht weiss ich nicht, interesiert mich aber auch nicht
Sclot ist offline   Mit Zitat antworten
Alt 02.09.2004, 23:49  
Gast
 
Beiträge: n/a
Standard

He he nun gehts!
Aber ich habe das Problem dass ich das Programm nur als root aufrufen kann denn sonst kann ich glaube ich die schnittstelle nicht ansprechen!

Kann mir da jemand weiterhelfen!
Benutze SuSE 9.1.

Habe eigentlich gedacht es reicht die Rechte zu setzen aber entweder ich habs falsch gemacht oder es klappt nett!

Hoffe auf Hilfe!!
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache Datei auslesen trunky PHP Tipps 2008 9 17.07.2008 22:37
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei nur einmal gleichzeitig aufrufen daniel2000 Scriptbörse 2 04.02.2008 11:30
[Erledigt] Datei mit &amp;amp;amp;amp;quot;w&amp;amp;amp;amp;quot; schreiben -&amp;amp;amp;amp;gt PHP-Fortgeschrittene 17 30.12.2005 13:58
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
mit onclick() Datei aufrufen HTML, Usability und Barrierefreiheit 6 11.08.2005 11:22
Datei aufrufen PHP Tipps 2005-2 7 09.08.2005 18:29
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
[Erledigt] mail versand mit anhang (-- fopen(), fread(), filesize() --) PHP Tipps 2005 5 29.01.2005 18:36
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42
Wie kann ich eine PHP Datei in eine HTML Datei umwandeln PHP Tipps 2004 2 12.08.2004 18:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
lpt c baseport, apache c programmierung, php kompilierte dateien aufrufen, kompilierte programme apache, outb php system, apache c, c programm in apachee, php c datei ansprechen, aufruf einer kompilierten c datei, .inb datei, html mit apache aufrufen, apache programm aufruf, php compilierte dateien nutzen, if(a & 0x80), start kompilierter datei c, apache2 c dateien, mit php kompilierte c-programme ausführen, kompilierte webdateien an dritte, kompilierte apache, c aufruf aus php

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.