Aansturen Zebra printer lokaal lukt wel maar via VPS niet
Hi,
Ik heb een eenvoudig scriptje voor het aansturen van een Zebra label printer.
Nu werkt dit script lokaal prima, maar als ik het upload naar mijn VPS en dan het script "draai" krijg ik de melding "Connection Refused".
Weet iemand of dit aan de instellingen op de Server ligt? Bijvoorbeeld poorten die dicht zitten? Of een oplossing?
Ik heb een eenvoudig scriptje voor het aansturen van een Zebra label printer.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
error_reporting(E_ALL);
/* Get the port for the service. */
$port = "9100";
/* Get the IP address for the target host. */
$host = "192.168.68.133";
/* construct the label */
$label = "^XA";
$label .= "^FO50,50^BCN,100,Y,N,N,A^FD290001744001^FS ";
$label .= "^PQ1" ;//aantal labels
$label .= " ^XZ";
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "socket created<br>";
}
echo "Attempting to connect to '$host' on port '$port'...<br>";
$result = @socket_connect($socket, $host, $port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "<br>";
} else {
echo "Connected<br>";
}
socket_write($socket, $label, strlen($label));
socket_close($socket);?>
error_reporting(E_ALL);
/* Get the port for the service. */
$port = "9100";
/* Get the IP address for the target host. */
$host = "192.168.68.133";
/* construct the label */
$label = "^XA";
$label .= "^FO50,50^BCN,100,Y,N,N,A^FD290001744001^FS ";
$label .= "^PQ1" ;//aantal labels
$label .= " ^XZ";
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "socket created<br>";
}
echo "Attempting to connect to '$host' on port '$port'...<br>";
$result = @socket_connect($socket, $host, $port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "<br>";
} else {
echo "Connected<br>";
}
socket_write($socket, $label, strlen($label));
socket_close($socket);?>
Nu werkt dit script lokaal prima, maar als ik het upload naar mijn VPS en dan het script "draai" krijg ik de melding "Connection Refused".
Weet iemand of dit aan de instellingen op de Server ligt? Bijvoorbeeld poorten die dicht zitten? Of een oplossing?
Gewijzigd op 13/08/2022 06:54:30 door David M
Sluit je PHP-script even. :-)
Verder link je nu naar een prive-netwerk met dit IP: 192.168.68.133. Daar kan een VPS op internet nooit bij. Je moet je portforwarding op je router instellen, en je externe IP gebruiken.
Verder link je nu naar een prive-netwerk met dit IP: 192.168.68.133. Daar kan een VPS op internet nooit bij. Je moet je portforwarding op je router instellen, en je externe IP gebruiken.
Gewijzigd op 12/08/2022 23:27:22 door - Ariën -
Ariën, dank voor je reactie.
Heb script gesloten ;-).
Ik heb de weg van de minste weerstand gekozen en gebruik de API van Labelary.com
Heb script gesloten ;-).
Ik heb de weg van de minste weerstand gekozen en gebruik de API van Labelary.com
Ook dat is een goed idee! :-)
Ik gebruik zo iets voor een Datamax printer.
Vanaf de server moet ik het externe ipadres van het kantoor in kwestie aanspreken. Dit op een willekeurige poort, zeg 555.
In de modem/router staat een forward van extern-poort-555 naar intern 192.168.68.133 poort 9100
En omdat het om een heel rijtje aan printers gaat, gebruiken we poort 555 tot en met 555+x en niet 9100. Ook al om nog enige veiligheid toe te voegen door "niet de voor de hand liggende poort".
Maar liever doet een firewall in de router dat nog op basis van een ge-whitelist ip adres.
Vanaf de server moet ik het externe ipadres van het kantoor in kwestie aanspreken. Dit op een willekeurige poort, zeg 555.
In de modem/router staat een forward van extern-poort-555 naar intern 192.168.68.133 poort 9100
En omdat het om een heel rijtje aan printers gaat, gebruiken we poort 555 tot en met 555+x en niet 9100. Ook al om nog enige veiligheid toe te voegen door "niet de voor de hand liggende poort".
Maar liever doet een firewall in de router dat nog op basis van een ge-whitelist ip adres.
Gewijzigd op 14/08/2022 17:26:37 door Ivo P
Ik heb er voor een klant een koppeling met PrintNode voor gemaakt. Wel betaalde dienst, maar werkt heel goed bij aansturen meerdere printers.
Als je een eigen linux server (dedicated hosting) hebt en CUPS kunt beheren op die server dan is het niet heel ingewikkeld.
Ik heb even zitten tellen, maar mijn klant komt waarschijnlijk zonder problemen aan de 5000 tot 7000 pagina's per dag om te printen. Dan gaat het vlot in de papieren lopen.
Ik heb even zitten tellen, maar mijn klant komt waarschijnlijk zonder problemen aan de 5000 tot 7000 pagina's per dag om te printen. Dan gaat het vlot in de papieren lopen.




