ether.begin(sizeof Ethernet::buffer,mymac,8) fails

The command "ether.begin(sizeof Ethernet::buffer,mymac,8)" fails for me but i was able to access the server created but very slowly it takes about two minutes to connect,but my internet connection is fast.I am using enc28j60 as ethernet controller(ethercard library) with arduino uno.Is there any issue in my code,but how am i able to access it and what does the command mean actually.

#include <EtherCard.h>

#define STATIC 0  // set to 1 to disable DHCP 

// mac address
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
// ethernet interface ip address
static byte myip[] = { 172,26,40,250 };
// gateway ip address
static byte gwip[] = { 172,26,40,1 };

// LED to control output
int ledPin10 = 10;

byte Ethernet::buffer[700];

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
 /* "<head><title>"
    "Service Temporarily Unavailable"
  "</title></head>" */
  "<body>"
    "<h3>This service is currently unavailable</h3>"
   /* "<p><em>"
      "The main server is currently off-line.
"
      "Please try again later."
    "</em></p>" */ 
  "</body>"
"</html>"
;

void setup () {
  pinMode(ledPin10, OUTPUT);

  Serial.begin(9600);
  Serial.println("Trying to get an IP...");

  Serial.print("MAC: ");
  for (byte i = 0; i < 6; ++i) {
    Serial.print(mymac[i], HEX);
    if (i < 5)
      Serial.print(':');
  }
  
  
  if (ether.begin(sizeof Ethernet::buffer,mymac,8) == 0)  
    Serial.println( "Failed to access Ethernet controller");
  else
    Serial.println("\nEthernet Controller Initialized");



#if STATIC
  Serial.println( "Getting static IP.");
  if (!ether.staticSetup(myip, gwip)){
    Serial.println( "could not get a static IP");
   // blinkLed();     // blink forever to indicate a problem
  }
#else

  Serial.println("Setting up DHCP");
  if (!ether.dhcpSetup()){
    Serial.println( "DHCP failed");
  //  blinkLed();     // blink forever to indicate a problem
  }
#endif
  
  ether.printIp("My IP: ", ether.myip);
  ether.printIp("GW IP: ", ether.gwip);
  ether.printIp("DNS IP: ", ether.dnsip);
}

void loop () {

  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);


  // IF LED10=ON turn it ON
  if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=ON") != 0) {
      Serial.println("Received ON command");
      digitalWrite(ledPin10, HIGH);
    }

    // IF LED10=OFF turn it OFF  
    if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=OFF") != 0) {
      Serial.println("Received OFF command");
      digitalWrite(ledPin10, LOW);
    }

    // show some data to the user
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);
}

Is there any issue in my code,but how am i able to access it.

Probably - but you Forgot to attach the code... so we can't access it either..

Sorry,i edited the post.

Are you providing all the necessary power and ground signals to the ENC board? You don't show a ground connection between the Arduino and the ENC breakout.

some power and ground signals are automatically given and those pins are hidden by proteus. circuit is correct.

Have you gotten any of the library examples to work? If not, you probably have a hardware problem.

those pins are hidden by proteus.

What the hell does that have to do with anything?

Is your problem with how the Arduino is performing or with how Proteus is performing?

If you problem is with how Proteus is performing, take it to the Proteus forum.