---
title: "öppna sida"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/69036-öppna-sida"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "benken"
published: "2003-02-22T11:04:41.000Z"
updated: "2003-02-24T00:11:05.000Z"
replies: 5
views: 303
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/69036-öppna-sida"
---

# öppna sida

## #1 — benken, 2003-02-22T11:04Z

Hur ska man göra så ett c/c++ program öppnarn websida? Jag vill bara att en php sida körs. Inte ha den. I vb kan man ju använda inet1.openurl men finns det inte nåt sånt i c++? Ska va i linux med.

Permalänk: https://www.webforum.nu/p/69036

## #2 — Alpha II, 2003-02-22T12:27Z

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp>

/red linux sa du... detta var nog windows :OO

Permalänk: https://www.webforum.nu/p/958797

## #3 — niko, 2003-02-22T21:38Z

Kortast tänkbara "fulkod" för att anropa en PHP-sida:

```
#include <winsock.h>
int main(int argc, char* argv[])
{
	struct sockaddr_in A;
	WSADATA W; SOCKET S;
	struct hostent *H; char R[1000]; int i ;
	WSAStartup (0x101,&W);
	S = socket(AF_INET, SOCK_STREAM,0);
	A.sin_family=AF_INET;
	A.sin_port = htons(80);
	H=gethostbyname("www.dindomän.se");
	A.sin_addr.s_addr=*((unsigned long *) H->h_addr);
	i=connect(S,(struct sockaddr *) &A,sizeof(A));
	strcpy(R,"GET /sökväg/dinsida.php  \r\nHost: [url]www.dindomän.se\r\n\r\n[/url]");
	i=send(S,R,strlen(R),0);
	return 0;
}
```

Du måste referera till *WSOCK32.LIB* vid länkningen. Koden borde kompilera på Linux också med ett par ändringar.

Permalänk: https://www.webforum.nu/p/959041

## #4 — benken, 2003-02-23T15:54Z

ok

Permalänk: https://www.webforum.nu/p/959319

## #5 — benken, 2003-02-23T16:12Z

Det funka inte, fick 7 fel. Åså funkar detj u inte för linux...

Permalänk: https://www.webforum.nu/p/959336

## #6 — niko, 2003-02-24T00:11Z

7 fel? Du får ursäkta, men min telepatiska förmåga är lite nedsatt idag (pga förkylning). Vad för fel? Kompileringsfel? Länkningsfel? Lade du till *WSOCK32.LIB*? *Project-\>Settings-\>Link-\>Object Library Modules* (om du använder VS).

> Åså funkar detj u inte för linux...

Nä, jag vet. Som jag skrev så var det Windowskod. Jag trodde du bara efterlyste själva principen.

Så här blir det på Linux (koden är lite längre och snyggare eftersom jag tagit den ur en bok):

```
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <errno.h>
#include <arpa/inet.h>
#define PROTOCOL "tcp"
#define REQUEST "GET /sökväg/dinsida.php \nHost: [url]www.dindomän.se\n\n[/url]"

int main(int argc, char *argv[]) {
  int sockid;
  struct servent *serviceaddr;
  struct hostent *hostaddr;
  struct protoent *protocol;
  struct sockaddr_in socketaddr;
  char buffer[1024];
  int count;
  bzero((char *) &socketaddr, sizeof(socketaddr));
  socketaddr.sin_family = AF_INET;
  serviceaddr = getservbyname("http", PROTOCOL);
  socketaddr.sin_port = serviceaddr->s_port;
  hostaddr = gethostbyname("www.dindomän.se");
  memcpy(&socketaddr.sin_addr, hostaddr->h_addr, hostaddr->h_length);
  protocol = getprotobyname(PROTOCOL);
  sockid = socket(PF_INET, SOCK_STREAM, protocol->p_proto);
  connect(sockid, &socketaddr, sizeof(socketaddr));
  write(sockid, REQUEST, strlen(REQUEST));
  return 0;
}
```

Vill du sen ha kod som du kan köra rakt av både på Windows och Linux så kanske Java eller Perl kan vara alternativ?

Permalänk: https://www.webforum.nu/p/959679

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/69036-öppna-sida
